Merge branch 'improvement/JAL-3449_add_install4j_installer_getdown_versions_to_jalvie...
[jalview.git] / src / jalview / bin / MemoryPercent.java
diff --git a/src/jalview/bin/MemoryPercent.java b/src/jalview/bin/MemoryPercent.java
new file mode 100644 (file)
index 0000000..3288e66
--- /dev/null
@@ -0,0 +1,32 @@
+package jalview.bin;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.OperatingSystemMXBean;
+
+public class MemoryPercent
+{
+
+  protected static long getPhysicalMemory()
+  {
+    final OperatingSystemMXBean o = ManagementFactory
+            .getOperatingSystemMXBean();
+
+    try
+    {
+      if (o instanceof com.sun.management.OperatingSystemMXBean)
+      {
+        final com.sun.management.OperatingSystemMXBean osb = (com.sun.management.OperatingSystemMXBean) o;
+        return osb.getTotalPhysicalMemorySize();
+      }
+    } catch (NoClassDefFoundError e)
+    {
+      // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
+      System.err.println(
+              "No com.sun.management.OperatingSystemMXBean: cannot get total physical memory size");
+    }
+
+    // We didn't get a com.sun.management.OperatingSystemMXBean.
+    return -1;
+  }
+
+}