diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java index 4eabe56d2..c660a7c16 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java @@ -282,7 +282,7 @@ public class JavaGUILauncherActivity extends BaseActivity implements View.OnTouc Logger.getInstance().appendToLog("Info: Java arguments: " + Arrays.toString(javaArgList.toArray(new String[0]))); - return JREUtils.launchJavaVM(this, javaArgList); + return JREUtils.launchJavaVM(this, null,javaArgList); } catch (Throwable th) { Tools.showError(this, th, true); return -1; diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java index b65a9fa4e..4b667288c 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -176,7 +176,7 @@ public final class Tools { javaArgList.add(versionInfo.mainClass); javaArgList.addAll(Arrays.asList(launchArgs)); // ctx.appendlnToLog("full args: "+javaArgList.toString()); - JREUtils.launchJavaVM(activity, javaArgList); + JREUtils.launchJavaVM(activity, gamedirPath, javaArgList); } public static String getGameDirPath(@NonNull MinecraftProfile minecraftProfile){ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java index e841c0bf8..d4d3ad998 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java @@ -190,7 +190,7 @@ public class JREUtils { Map envMap = new ArrayMap<>(); envMap.put("POJAV_NATIVEDIR", NATIVE_LIB_DIR); envMap.put("JAVA_HOME", Tools.DIR_HOME_JRE); - envMap.put("HOME", Tools.DIR_GAME_NEW); + envMap.put("HOME", Tools.DIR_GAME_HOME); envMap.put("TMPDIR", activity.getCacheDir().getAbsolutePath()); envMap.put("LIBGL_MIPMAP", "3"); @@ -274,7 +274,7 @@ public class JREUtils { // return ldLibraryPath; } - public static int launchJavaVM(final Activity activity,final List JVMArgs) throws Throwable { + public static int launchJavaVM(final Activity activity, String gameDirectory, final List JVMArgs) throws Throwable { JREUtils.relocateLibPath(); // For debugging only! /* @@ -309,7 +309,7 @@ public class JREUtils { initJavaRuntime(); setupExitTrap(activity.getApplication()); - chdir(Tools.DIR_GAME_NEW); + chdir(gameDirectory == null ? Tools.DIR_GAME_NEW : gameDirectory); userArgs.add(0,"java"); //argv[0] is the program name according to C standard. final int exitCode = VMLauncher.launchJVM(userArgs.toArray(new String[0])); @@ -340,7 +340,7 @@ public class JREUtils { ArrayList overridableArguments = new ArrayList<>(Arrays.asList( "-Djava.home=" + Tools.DIR_HOME_JRE, "-Djava.io.tmpdir=" + ctx.getCacheDir().getAbsolutePath(), - "-Duser.home=" + new File(Tools.DIR_GAME_NEW).getParent(), + "-Duser.home=" + Tools.DIR_GAME_HOME, "-Duser.language=" + System.getProperty("user.language"), "-Dos.name=Linux", "-Dos.version=Android-" + Build.VERSION.RELEASE,