{
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);
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)
{
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;
{
quiet = true;
}
+ if (arg.equals("--headless"))
+ {
+ headless = true;
+ }
+ if (arg.equals("--gui"))
+ {
+ gui = true;
+ }
if (debug && arg.equals("--launcherprint"))
{
launcherprint = true;
arguments.add(arg);
}
}
+ if (gui)
+ {
+ // --gui takes precedence over --headless
+ headless = false;
+ }
// use saved preferences if no cmdline args
boolean useCustomisedSettings = LaunchUtils
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);
{
dockName = true;
}
+ else if (arg.startsWith("-D" + headlessProperty + "="))
+ {
+ headlessProp = true;
+ }
}
if (!memSet)
+ appName);
}
}
+ if (headless && !headlessProp)
+ {
+ System.setProperty(headlessProperty, "true");
+ command.add("-D" + headlessProperty + "=true");
+ }
String scalePropertyArg = HiDPISetting.getScalePropertyArg();
if (scalePropertyArg != null)