jvmargs = config.getMultiValue(appPrefix + "jvmarg");
addAll(jvmargs, _jvmargs);
}
+
+ // extract jvmargs and jvmmempc from command line appargs. These will appear after and override the previous jvmargs
+ addAll(processCliJvmArgs(_envc.appArgs), _jvmargs);
- // see if a percentage of physical memory option exists
- int jvmmempc = config.getInt("jvmmempc", -1);
- // app_id prefixed setting overrides
- if (appPrefix.length() > 0) {
- jvmmempc = config.getInt(appPrefix + "jvmmempc", jvmmempc);
+ // get the set of optimum JVM arguments
+ _optimumJvmArgs = config.getMultiValue("optimum_jvmarg");
+
+ // transfer our application arguments
+ String[] appargs = config.getMultiValue(appPrefix + "apparg");
+ addAll(appargs, _appargs);
+
+ // add the launch specific application arguments
+ _appargs.addAll(_envc.appArgs);
+
+ // see if a percentage of physical memory option exists if it hasn't been set by cli args
+ if (_jvmmempc > -1) {
+ _jvmmempc = config.getInt("jvmmempc", -1);
+ // app_id prefixed setting overrides
+ if (appPrefix.length() > 0) {
+ _jvmmempc = config.getInt(appPrefix + "jvmmempc", _jvmmempc);
+ }
}
- if (0 <= jvmmempc && jvmmempc <= 100) {
+ if (0 <= _jvmmempc && _jvmmempc <= 100) {
long maxMemLong = -1;
try
{
- maxMemLong = MemorySetting.memPercent(jvmmempc);
+ maxMemLong = MemorySetting.memPercent(_jvmmempc);
} catch (Exception e)
{
e.printStackTrace();
}
- } else if (jvmmempc != -1) {
- System.out.println("'jvmmempc' value must be in range 0 to 100 (read as '"+Integer.toString(jvmmempc)+"')");
+ } else if (_jvmmempc != -1) {
+ System.out.println("'jvmmempc' value must be in range 0 to 100 (read as '"+Integer.toString(_jvmmempc)+"')");
}
-
- // get the set of optimum JVM arguments
- _optimumJvmArgs = config.getMultiValue("optimum_jvmarg");
-
- // transfer our application arguments
- String[] appargs = config.getMultiValue(appPrefix + "apparg");
- addAll(appargs, _appargs);
-
- // add the launch specific application arguments
- _appargs.addAll(_envc.appArgs);
// look for custom arguments
fillAssignmentListFromPairs("extra.txt", _txtJvmArgs);
}
if (ext != null && LOCATOR_FILE_EXTENSION.equals(ext.toLowerCase())) {
// this file extension should have been dealt with in Getdown class
+ } else if (filename.startsWith("-")) {
+ // probably an argument to jvm or jalview
+ log.info("DOING NOTHING WITH ARG", "appargs", _appargs);
} else {
_appargs.add(0, "-open");
}
return _appbase;
}
+ protected String[] processCliJvmArgs(List<String> args) {
+ List<String> extracted = new ArrayList<>();
+ if (args != null) {
+ for (String arg : args) {
+ if (arg.startsWith("-"+CLI_JVM_ARG_PREFIX)) {
+ String newArg = arg.substring(CLI_JVM_ARG_PREFIX.length() + 1);
+ extracted.add(newArg);
+ } else if (arg.startsWith("-jvmmempc=")) {
+ try {
+ _jvmmempc = Integer.parseInt(arg.substring(10));
+ } catch (NumberFormatException e){
+ log.warning("Could not parse jvmmempc command line argument", "arg", arg);
+ }
+ }
+ }
+ }
+ return extracted.toArray(new String[0]);
+ }
+
protected final EnvConfig _envc;
protected File _config;
protected File _backupConfig;
protected List<String> _txtJvmArgs = new ArrayList<>();
+ /** jvmmempc for memory settings and other cli arguments for the JVM */
+ protected int _jvmmempc = -1;
+ protected static final String CLI_JVM_ARG_PREFIX = "JVM";
+
/** If a warning has been issued about not being able to set modtimes. */
protected boolean _warnedAboutSetLastModified;
getdown_local = false
getdown_website_dir = getdown/website
getdown_resource_dir = resource
-#getdown_j11lib_dir = j11lib
+getdown_j11lib_dir = j11lib
getdown_files_dir = getdown/files
getdown_launcher = getdown/lib/getdown-launcher.jar
getdown_launcher_new = getdown-launcher-new.jar
getdown_txt_ui.progress_text = 000000
getdown_txt_ui.status = 20, 380, 600, 58
getdown_txt_ui.status_text = 000066
-#getdown_txt_ui.text_shadow = FFFFFF
getdown_txt_ui.install_error = http://www.jalview.org/faq/getdownerror
getdown_txt_ui.mac_dock_icon = resources/images/jalview_logos.ico
getdown_alt_java8_min_version = 01080000