Minecraft Forge Gradle "RunClient" Исключение - PullRequest
0 голосов
/ 24 марта 2020

Я должен установить Minecraft Forge. Я пишу команду gradle.

gradlew setupDecompWorkspace
gradlew eclipse

Эта команда выполняется хорошо.

Но следующая команда не работает

gradlew runClient

Это исключение команды.

java .lang.reflect.InvocationTargetException: null at sun.reflect. *: 62) ~ [?: 1.8.0_242] в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) ~ [?: 1.8.0_242] в java .lang.reflect.Method.invoke ( Метод. java: 498) ~ [?: 1.8.0_242] в net .minecraft.launchwrapper.Launch.launch (Launch. java: 135) [launchwrapper-1.12.jar:?] В net .minecraft.launchwrapper.Launch.main (Launch. java: 28) [launchwrapper-1.12.jar :?] at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [?: 1.8.0_242] при sun.reflect .NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) ~ [?: 1.8.0_242] at sun.reflect.DelegatingMethodAccessorImpl.invoke (De legatingMethodAccessorImpl. java: 43) ~ [?: 1.8.0_242] в java .lang.reflect.Method.invoke (Метод. java: 498) ~ [?: 1.8.0_242] в net. minecraftforge.gradle.GradleStartCommon.launch (GradleStartCommon. java: 97) [start / :?] at GradleStart.main (GradleStart. java: 25) [start / :?] Причина: java .lang. ExceptionInInitializerError в net .minecraft.client.Minecraft.getSystemTime (Minecraft. java: 3159) ~ [Minecraft.class :?] в net .minecraft.client.main.Main.main (Main. java : 42) ~ [Main.class :?] ... еще 12 причин: java .lang.NullPointerException в java .lang.ClassLoader.loadLibrary (ClassLoader. java: 1847) ~ [?: 1.8 .0_242] в java .lang.Runtime.loadLibrary0 (время выполнения. java: 871) ~ [?: 1.8.0_242] в java .lang.System.loadLibrary (система. java: 1124) ~ [?: 1.8.0_242] в org.lwjgl.Sys $ 1.run (Sys. java: 72) ~ [lwjgl-2.9.4-nightly-20150209.jar :?] в java .security.AccessController. doPrivileged (собственный метод) ~ [?: 1.8.0_242] в org.lwjgl.Sys.doLoadLibrary (Sys. java: 66) ~ [lwjgl-2.9.4-nightly-2015020 9.jar :?] в org.lwjgl.Sys.loadLibrary (Sys. java: 87) ~ [lwjgl-2.9.4-nightly-20150209.jar :?] в org.lwjgl.Sys. (Sys. java: 117) ~ [lwjgl-2.9.4-nightly-20150209.jar :?] в net .minecraft.client.Minecraft.getSystemTime (Minecraft. java: 3159) ~ [Minecraft.class :?] в net .minecraft.client.main.Main.main (Main. java: 42) ~ [Main.class:?] ... еще 12 Исключение в потоке "main" [07:55:11] [ main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: java .lang.reflect.InvocationTargetException [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) [07:55:11] [ma в / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: в java .lang.reflect.Method.invoke (Метод. java: 498) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: в net .minecraftforge.gradle.GradleStartCommon.launch (GradleStartCommon. java: 97) [07:55:11 ] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1052]: в GradleStart.main (GradleStart. java: 25) [07:55:11] [main / INFO] [ STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: вызвано: net .minecraftforge.fml.relauncher.FMLSecurityManager $ ExitTrappedException [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в net .minecraftforge. fml.relauncher.FMLSecurityManager.checkPermission (FMLSecurityManager. java: 49) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в java .lang.SecurityManager.checkExit (SecurityManager. java: 761) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в java. lang.Runtime.exit (время выполнения. java: 108) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в java .lang .System.exit (System. java: 973) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в net .minecraft. launchwrapper.Launch.launch (Launch. java: 138) [07:55:11] [main / INFO] [STDERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: в net .minecraft .launchwrapper.Launch.main (Launch. java: 28) [07:55:11] [main / INFO] [ST DERR]: [java .lang.ThreadGroup: uncaughtException: 1061]: ... еще 6: runClient FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':runClient'.
> Process 'command 'C:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.242-1\bin\java.exe'' finished

с ненулевым значением выхода 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 9.208 secs

Что я могу сделать ??

Также сборка gradlew хороша.

1 Ответ

0 голосов
/ 27 апреля 2020

Если вы моддинг с ForgeGradle 3, вы можете запуститьClient сейчас, потому что ForgeGradle 3. обновлен.

Если вы не моддинг с ForgeGradle 3.x, вы ничего не можете сделать с официальным ForgeGradle. Подделать группу разработчиков никогда не исправить. (см. https://github.com/MinecraftForge/ForgeGradle/issues/652)

Вы можете использовать форк ForgeGradle или сделать форк из ForgeGradle.

Я сделал форк из ForgeGradle 2.3 и 1.2 , чтобы вы могли их использовать. (если есть вопрос по поводу моих вилок, пожалуйста, укажите в них проблему.) Если вы используете ForgeGradle, который не является 2.3 или 1.2 или если вы не хотите использовать мой форк, вы можете сделать форк из ForgeGradle.

почему это произошло и что вы должны изменить в своем форке

почему это произошло

Код причины этого cra sh - это hackNatives() функция в GradleStart. функция hackNatives устанавливает ClassLoader.sys_paths null для сброса ClassLoader.usr_paths.

До 8u242, ClassLoader.loadLibrary проверяет, является ли sys_paths 1030 * и сбрасывает sys_paths и usr_paths, если sys_paths это null.

Но поскольку 8u242, sys_paths и usr_paths инициализируются при запуске JVM, и ClassLoader.loadLibrary никогда не проверяют, является ли sys_paths null. (см. http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/1d666f78532a/)

что вы должны изменить в своем форке

Мы должны переписать в hackNatives() в GradleStart классе, в каталоге ресурсов , Для сброса usr_paths выполните usr_paths = initializePath("java.library.path") с отражением в hackNatives(). (вы можете ссылаться на hackNatives в minecraft forge 1.15.x userdev: LaunchTesting.java # L126 )

...