X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FLauncher.java;h=e13f2dd619268cb8aa8f8b82668ab0a692a7143a;hb=1b10059cdf8b6a85fddd86a2a3c6588be3257c22;hp=fb1c5cd47b4958853711e111ffe06c37d7616f34;hpb=c7827c8c0d28158fcea4ebc132c7b457d60f557d;p=jalview.git diff --git a/src/jalview/bin/Launcher.java b/src/jalview/bin/Launcher.java index fb1c5cd..e13f2dd 100644 --- a/src/jalview/bin/Launcher.java +++ b/src/jalview/bin/Launcher.java @@ -20,12 +20,16 @@ */ package jalview.bin; +import java.util.Locale; + import java.io.File; import java.io.IOException; import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.List; +import jalview.util.ChannelProperties; + /** * A Launcher class for Jalview. This class is used to launch Jalview from the * shadowJar when Getdown is not used or available. It attempts to take all the @@ -45,12 +49,13 @@ public class Launcher { private final static String startClass = "jalview.bin.Jalview"; - private final static String dockIconPath = "JalviewLogo_Huge.png"; + private final static String dockIconPath = ChannelProperties + .getProperty("logo.512"); /** * main method for jalview.bin.Launcher. This restarts the same JRE's JVM with - * the same arguments but with memory adjusted based on extracted -jvmmempc and - * -jvmmemmax application arguments. If on a Mac then extra dock:icon and + * the same arguments but with memory adjusted based on extracted -jvmmempc + * and -jvmmemmax application arguments. If on a Mac then extra dock:icon and * dock:name arguments are also set. * * @param args @@ -130,7 +135,7 @@ public class Launcher if (!memSet) { long maxMemLong = MemorySetting.getMemorySetting(jvmmemmax, jvmmempc); - + if (maxMemLong > 0) { memSetting = "-Xmx" + Long.toString(maxMemLong); @@ -149,20 +154,34 @@ public class Launcher { // -Xdock:name=... doesn't actually work :( // Leaving it in in case it gets fixed - command.add("-Xdock:name=" + "Jalview"); + command.add( + "-Xdock:name=" + ChannelProperties.getProperty("app_name")); } } + String scalePropertyArg = HiDPISetting.getScalePropertyArg(); + if (scalePropertyArg != null) + { + System.out.println("Running " + startClass + " with scale setting " + + scalePropertyArg); + command.add(scalePropertyArg); + } + command.add(startClass); command.addAll(arguments); final ProcessBuilder builder = new ProcessBuilder(command); - // System.out.println("COMMAND: " + String.join(" ", builder.command())); + if (Boolean.parseBoolean(System.getProperty("launcherprint", "false"))) + { + System.out.println( + "LAUNCHER COMMAND: " + String.join(" ", builder.command())); + } System.out.println("Running " + startClass + " with " - + (memSetting == null ? "no memory setting" : memSetting)); + + (memSetting == null ? "no memory setting" + : ("memory setting " + memSetting))); - if (Boolean.parseBoolean(System.getProperty("launcherstop"))) + if (Boolean.parseBoolean(System.getProperty("launcherstop", "false"))) { System.exit(0); } @@ -173,10 +192,11 @@ public class Launcher process.waitFor(); } catch (IOException e) { - if (e.getMessage().toLowerCase().contains("memory")) + if (e.getMessage().toLowerCase(Locale.ROOT).contains("memory")) { System.out.println("Caught a memory exception: " + e.getMessage()); - // Probably the "Cannot allocate memory" error, try without the memory setting + // Probably the "Cannot allocate memory" error, try without the memory + // setting ArrayList commandNoMem = new ArrayList<>(); for (int i = 0; i < command.size(); i++) {