+ if (!LaunchUtils.checkJavaVersion())
+ {
+ jalview.bin.Console
+ .errPrintln("WARNING - The Java version being used (Java "
+ + LaunchUtils.getJavaVersion()
+ + ") may lead to problems. This installation of Jalview should be used with Java "
+ + LaunchUtils.getJavaCompileVersion() + ".");
+ }
+
+ String jvmmempc = null;
+ String jvmmemmax = null;
+ boolean debug = false;
+ boolean wait = true;
+ boolean quiet = false;
+ boolean headless = false;
+ boolean assumeheadless = false;
+ boolean gui = false;
+ boolean help = false;
+ boolean stdout = false;
+ // must set --debug before --launcher...
+ boolean launcherstop = false;
+ boolean launcherprint = false;
+ boolean launcherwait = false;
+ ArrayList<String> arguments = new ArrayList<>();
+ String previousArg = null;
+ // set debug first
+ for (String arg : args)
+ {
+ if (arg.equals("--debug"))
+ {
+ debug = true;
+ }
+ }
+ for (String arg : args)
+ {
+ if (arg.equals("--quiet"))
+ {
+ quiet = true;
+ }
+ else if (arg.equals("--gui"))
+ {
+ gui = true;
+ }
+ else if (arg.equals("--help"))
+ {
+ help = true;
+ }
+ else if (arg.equals("--version"))
+ {
+ help = true;
+ }
+
+ if (!assumeheadless)
+ {
+ for (String a : assumeHeadlessArgs)
+ {
+ if (arg.equals("--" + a) || arg.startsWith("--" + a + "="))
+ {
+ assumeheadless = true;
+ }
+ }
+ }
+
+ if (arg.equals("--output=-")
+ || (arg.equals("-") && "--output".equals(previousArg)))
+ {
+ stdout = true;
+ }
+
+ if (debug)
+ {
+ if (arg.equals("--launcherprint"))
+ {
+ launcherprint = true;
+ }
+ else if (arg.equals("--launcherstop"))
+ {
+ launcherstop = true;
+ }
+ else if (arg.equals("--launcherwait"))
+ {
+ launcherwait = true;
+ }
+ else
+ // this ends the launcher immediately
+ if (arg.equals("--launchernowait"))
+ {
+ wait = false;
+ }
+ }
+ previousArg = arg;
+ // Don't add the --launcher... args to Jalview launch
+ if (arg.startsWith("--launcher"))
+ {
+ continue;
+ }
+ // jvmmempc and jvmmemmax args used to set memory and are not passed on to
+ // startClass
+ final String jvmmempcArg = Arg.JVMMEMPC.getName();
+ final String jvmmemmaxArg = Arg.JVMMEMMAX.getName();
+ if (arg.startsWith("-" + jvmmempcArg + "="))
+ {
+ jvmmempc = arg.substring(jvmmempcArg.length() + 2);
+ }
+ else if (arg.startsWith("-" + jvmmemmaxArg + "="))
+ {
+ jvmmemmax = arg.substring(jvmmemmaxArg.length() + 2);
+ }
+ // --doubledash versions
+ else if (arg.startsWith("--" + jvmmempcArg + "="))
+ {
+ jvmmempc = arg.substring(jvmmempcArg.length() + 3);
+ }
+ else if (arg.startsWith("--" + jvmmemmaxArg + "="))
+ {
+ jvmmemmax = arg.substring(jvmmemmaxArg.length() + 3);
+ }
+ // retain arg
+ else
+ {
+ arguments.add(arg);
+ }
+ }
+ if (help)
+ {
+ // --help takes precedence over --gui
+ headless = true;
+ }
+ else if (gui)
+ {
+ // --gui takes precedence over --headless
+ headless = false;
+ }
+ else
+ {
+ // --output arguments assume headless mode
+ headless = assumeheadless;
+ }
+
+ final String appName = ChannelProperties.getProperty("app_name");
+
+ // if we're using jalview.bin.Launcher we always assume a console is in use
+ final String javaBin = LaunchUtils.findJavaBin(true);