From 1883dde9773e9f878731abae3cf5c12ac7b00e67 Mon Sep 17 00:00:00 2001 From: tomikun <60690056+alexytomi@users.noreply.github.com> Date: Thu, 7 May 2026 21:29:02 +0800 Subject: [PATCH] fix: Error parsing JVM args when JSON missing arguments field --- .../main/java/net/kdt/pojavlaunch/Tools.java | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) 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 76239b10a..2f45c47ae 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -735,6 +735,8 @@ public final class Tools { public static String[] getMinecraftJVMArgs(String versionName, File gameDir) { JMinecraftVersionList.Version versionInfo = Tools.getVersionInfo(versionName, true); + if (versionInfo.arguments == null || versionInfo.arguments.jvm == null) + return new String[0]; Map varArgMap = new ArrayMap<>(); varArgMap.put("classpath_separator", ":"); @@ -743,39 +745,37 @@ public final class Tools { varArgMap.put("natives_directory", Tools.DIR_CACHE.getAbsolutePath()); List minecraftArgs = new ArrayList<>(); - if (versionInfo.arguments.jvm != null) { - for (Object arg : versionInfo.arguments.jvm) { - if (arg instanceof String) { - // These are defined later on - if (((String) arg).contains("java.library.path")) { - continue; - } - if (arg.equals("-cp")) { - continue; - } - if (arg.equals("${classpath}")){ - continue; - } - // Should fix Forge 1.17.1-37.0.12 and older from crashing - // Fixed in forge on https://github.com/MinecraftForge/MinecraftForge/pull/7919 - // Released as Forge 1.17.1-37.0.13 in https://maven.minecraftforge.net/net/minecraftforge/forge/1.17.1-37.0.13/forge-1.17.1-37.0.13-changelog.txt - // yes this duplicates it, it's fine. - // FIXME: Workaround old bootstraplauncher <0.1.17 buggy behaviour. See FCL workaround - // https://github.com/FCL-Team/FoldCraftLauncher/blob/00e96bcf8ddc8a550e9aba6091a73d5bee973b54/FCLCore/src/main/java/com/tungsten/fclcore/download/MaintainTask.java#L198-L200 - if (((String) arg).startsWith("-DignoreList=")){ - minecraftArgs.add(arg+",${version_name}.jar"); - continue; - } + for (Object arg : versionInfo.arguments.jvm) { + if (arg instanceof String) { + // These are defined later on + if (((String) arg).contains("java.library.path")) { + continue; + } + if (arg.equals("-cp")) { + continue; + } + if (arg.equals("${classpath}")){ + continue; + } + // Should fix Forge 1.17.1-37.0.12 and older from crashing + // Fixed in forge on https://github.com/MinecraftForge/MinecraftForge/pull/7919 + // Released as Forge 1.17.1-37.0.13 in https://maven.minecraftforge.net/net/minecraftforge/forge/1.17.1-37.0.13/forge-1.17.1-37.0.13-changelog.txt + // yes this duplicates it, it's fine. + // FIXME: Workaround old bootstraplauncher <0.1.17 buggy behaviour. See FCL workaround + // https://github.com/FCL-Team/FoldCraftLauncher/blob/00e96bcf8ddc8a550e9aba6091a73d5bee973b54/FCLCore/src/main/java/com/tungsten/fclcore/download/MaintainTask.java#L198-L200 + if (((String) arg).startsWith("-DignoreList=")){ + minecraftArgs.add(arg+",${version_name}.jar"); + continue; + } - // TODO: Implement adding launcher brand and version - if (((String) arg).contains("minecraft.launcher.brand") || - ((String) arg).contains("minecraft.launcher.version")) { - continue; - } + // TODO: Implement adding launcher brand and version + if (((String) arg).contains("minecraft.launcher.brand") || + ((String) arg).contains("minecraft.launcher.version")) { + continue; + } - minecraftArgs.add((String) arg); - } //TODO: implement (?maybe?) - } + minecraftArgs.add((String) arg); + } //TODO: implement (?maybe?) } return JSONUtils.insertJSONValueList(minecraftArgs.toArray(new String[0]), varArgMap); }