X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FLauncher.java;fp=src%2Fjalview%2Fbin%2FLauncher.java;h=412f119221d4a19e936a0ea32f9af84f0e12dfe5;hb=1f6504bd0b7187c99cd4a2551c15e854d14583b5;hp=9957a40dfb33759c4da94f5a9b3f6a49bbf9ec3d;hpb=d6914d9c40f632c848e9936254400bfcd64720a6;p=jalview.git diff --git a/src/jalview/bin/Launcher.java b/src/jalview/bin/Launcher.java index 9957a40..412f119 100644 --- a/src/jalview/bin/Launcher.java +++ b/src/jalview/bin/Launcher.java @@ -12,6 +12,8 @@ public class Launcher private final static int maxHeapSizePerCent = 90; + private final static String maxHeapSizePerCentProperty = "jvmmempc"; + private final static String dockIconPath = "JalviewLogo_Huge.png"; public static void main(String[] args) @@ -22,6 +24,8 @@ public class Launcher ArrayList command = new ArrayList<>(); command.add(javaBin); + String memSetting = null; + boolean isAMac = System.getProperty("os.name").indexOf("Mac") > -1; for (String jvmArg : ManagementFactory.getRuntimeMXBean() @@ -46,6 +50,7 @@ public class Launcher String arg = command.get(i); if (arg.startsWith("-Xmx")) { + memSetting = arg; memSet = true; } else if (arg.startsWith("-Xdock:icon")) @@ -61,10 +66,32 @@ public class Launcher if (!memSet) { long maxMemLong = -1; + int percent = maxHeapSizePerCent; + String jvmmempc = System.getProperty(maxHeapSizePerCentProperty); + try + { + if (jvmmempc != null) + { + int trypercent = Integer.parseInt(jvmmempc); + if (0 < trypercent && trypercent <= 100) + { + percent = trypercent; + } + else + { + System.out.println("Property '" + maxHeapSizePerCentProperty + + "' should be in range 1..100"); + } + } + } catch (Exception e) + { + System.out.println("Error parsing " + maxHeapSizePerCentProperty + + " '" + jvmmempc + "'"); + } try { - maxMemLong = MemorySetting.memPercent(maxHeapSizePerCent); + maxMemLong = MemorySetting.memPercent(percent); } catch (Exception e) { e.printStackTrace(); @@ -75,7 +102,8 @@ public class Launcher if (maxMemLong > 0) { - command.add("-Xmx" + Long.toString(maxMemLong)); + memSetting = "-Xmx" + Long.toString(maxMemLong); + command.add(memSetting); } } @@ -98,7 +126,9 @@ public class Launcher final ProcessBuilder builder = new ProcessBuilder(command); - System.out.println("COMMAND: " + String.join(" ", builder.command())); + // System.out.println("COMMAND: " + String.join(" ", builder.command())); + System.out.println("Running " + startClass + " with " + + (memSetting == null ? "no memSetting" : memSetting)); try {