Cleaned part of launchJVM implementation.

This commit is contained in:
SerpentSpirale 2021-08-12 18:37:59 +02:00
parent 50d822cca9
commit 29a96330aa

View File

@ -257,26 +257,25 @@ public class JREUtils {
// return ldLibraryPath; // return ldLibraryPath;
} }
public static int launchJavaVM(final LoggableActivity ctx, List<String> JVMArguments) throws Throwable { public static int launchJavaVM(final LoggableActivity ctx,final List<String> JVMArgs) throws Throwable {
JREUtils.relocateLibPath(ctx); JREUtils.relocateLibPath(ctx);
final String graphicsLib = loadGraphicsLibrary(); final String graphicsLib = loadGraphicsLibrary();
List<String> userArgs = getJavaArgs(ctx,graphicsLib);
//List<String> javaArgList = new ArrayList<>();
//Remove arguments that can interfere with the good working of the launcher //Remove arguments that can interfere with the good working of the launcher
purgeArg(JVMArguments,"-Xms"); purgeArg(userArgs,"-Xms");
purgeArg(JVMArguments,"-Xmx"); purgeArg(userArgs,"-Xmx");
purgeArg(JVMArguments,"-d32"); purgeArg(userArgs,"-d32");
purgeArg(JVMArguments,"-d64"); purgeArg(userArgs,"-d64");
//Add automatically generated args //Add automatically generated args
JVMArguments.add(Tools.DIR_HOME_JRE + "/bin/java"); userArgs.add("-Xms" + LauncherPreferences.PREF_RAM_ALLOCATION + "M");
getJavaArgs(ctx, JVMArguments,graphicsLib); userArgs.add("-Xmx" + LauncherPreferences.PREF_RAM_ALLOCATION + "M");
JVMArguments.add("-Xms" + LauncherPreferences.PREF_RAM_ALLOCATION + "M"); userArgs.addAll(JVMArgs);
JVMArguments.add("-Xmx" + LauncherPreferences.PREF_RAM_ALLOCATION + "M");
ctx.runOnUiThread(() -> Toast.makeText(ctx, ctx.getString(R.string.autoram_info_msg,LauncherPreferences.PREF_RAM_ALLOCATION), Toast.LENGTH_SHORT).show()); ctx.runOnUiThread(() -> Toast.makeText(ctx, ctx.getString(R.string.autoram_info_msg,LauncherPreferences.PREF_RAM_ALLOCATION), Toast.LENGTH_SHORT).show());
System.out.println(JVMArguments); System.out.println(JVMArgs);
// For debugging only! // For debugging only!
/* /*
@ -292,7 +291,7 @@ public class JREUtils {
setupExitTrap(ctx.getApplication()); setupExitTrap(ctx.getApplication());
chdir(Tools.DIR_GAME_NEW); chdir(Tools.DIR_GAME_NEW);
final int exitCode = VMLauncher.launchJVM(JVMArguments.toArray(new String[0])); final int exitCode = VMLauncher.launchJVM(userArgs.toArray(new String[0]));
ctx.appendlnToLog("Java Exit code: " + exitCode); ctx.appendlnToLog("Java Exit code: " + exitCode);
if (exitCode != 0) { if (exitCode != 0) {
ctx.runOnUiThread(() -> { ctx.runOnUiThread(() -> {
@ -307,13 +306,13 @@ public class JREUtils {
} }
/** /**
* Fills up the <b>javaArgList</b> passed in parameter with the user arguments * Gives an argument list filled with both the user args
* and the auto-generated ones (eg. the window resolution). * and the auto-generated ones (eg. the window resolution).
* @param ctx The application context * @param ctx The application context
* @param javaArgList The current list of arguments
* @param renderLib The name of the renderer used. * @param renderLib The name of the renderer used.
* @return A list filled with args.
*/ */
public static void getJavaArgs(Context ctx, List<String> javaArgList, String renderLib) { public static List<String> getJavaArgs(Context ctx, String renderLib) {
List<String> userArguments = parseJavaArguments(LauncherPreferences.PREF_CUSTOM_JAVA_ARGS); List<String> userArguments = parseJavaArguments(LauncherPreferences.PREF_CUSTOM_JAVA_ARGS);
String[] overridableArguments = new String[]{ String[] overridableArguments = new String[]{
"-Djava.home=" + Tools.DIR_HOME_JRE, "-Djava.home=" + Tools.DIR_HOME_JRE,
@ -352,8 +351,8 @@ public class JREUtils {
} }
//Add all the arguments //Add all the arguments
javaArgList.addAll(userArguments); userArguments.addAll(Arrays.asList(overridableArguments));
javaArgList.addAll(Arrays.asList(overridableArguments)); return userArguments;
} }
/** /**