X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fbin%2FLauncher.java;h=c333e2ef09d144412de0e06777ea25753e8feb05;hb=e5d038fc1bfc07d3879ef57f7726c60617988965;hp=a87d32211d9bd1b727fa12cfd90ed4bc61644c4e;hpb=f6e495e7dace3de7fd890cb9f817a99ec5fcbbcc;p=jalview.git diff --git a/src/jalview/bin/Launcher.java b/src/jalview/bin/Launcher.java index a87d322..c333e2e 100644 --- a/src/jalview/bin/Launcher.java +++ b/src/jalview/bin/Launcher.java @@ -50,6 +50,8 @@ public class Launcher { private final static String startClass = "jalview.bin.Jalview"; + private final static String headlessProperty = "java.awt.headless"; + private static boolean checkJVMSymlink(String testBin) { File testBinFile = new File(testBin); @@ -94,13 +96,14 @@ public class Launcher final String javaBinDir = System.getProperty("java.home") + File.separator + "bin" + File.separator; String javaBin = null; - if (javaBin == null && checkJVMSymlink(javaBinDir + appName)) - { - javaBin = javaBinDir + appName; - } - if (javaBin == null && checkJVMSymlink(javaBinDir + "Jalview")) + for (String name : new String[] { appName, "Jalview", "java", + "java.exe" }) { - javaBin = javaBinDir + "Jalview"; + if (checkJVMSymlink(javaBinDir + name)) + { + javaBin = javaBinDir + name; + break; + } } if (javaBin == null) { @@ -127,6 +130,8 @@ public class Launcher boolean debug = false; boolean wait = true; boolean quiet = false; + boolean headless = false; + boolean gui = false; // must set --debug before --launcher... boolean launcherstop = false; boolean launcherprint = false; @@ -142,6 +147,14 @@ public class Launcher { quiet = true; } + if (arg.equals("--headless")) + { + headless = true; + } + if (arg.equals("--gui")) + { + gui = true; + } if (debug && arg.equals("--launcherprint")) { launcherprint = true; @@ -199,6 +212,11 @@ public class Launcher arguments.add(arg); } } + if (gui) + { + // --gui takes precedence over --headless + headless = false; + } // use saved preferences if no cmdline args boolean useCustomisedSettings = LaunchUtils @@ -221,6 +239,7 @@ public class Launcher boolean memSet = false; boolean dockIcon = false; boolean dockName = false; + boolean headlessProp = false; for (int i = 0; i < command.size(); i++) { String arg = command.get(i); @@ -241,6 +260,10 @@ public class Launcher { dockName = true; } + else if (arg.startsWith("-D" + headlessProperty + "=")) + { + headlessProp = true; + } } if (!memSet) @@ -276,6 +299,11 @@ public class Launcher + appName); } } + if (headless && !headlessProp) + { + System.setProperty(headlessProperty, "true"); + command.add("-D" + headlessProperty + "=true"); + } String scalePropertyArg = HiDPISetting.getScalePropertyArg(); if (scalePropertyArg != null)