Minecraft Forge服务器启动Bat报错:Java类转换异常求助
Minecraft Forge 1.12.2服务器启动报错求助
我正在搭建Minecraft Forge 1.12.2服务器,运行启动bat文件时持续报错。该脚本原本应该自动适配Java 1.8版本启动服务器,在我桌面端能正常运行,但当前环境下报错。我已经尝试指定全新安装的jdk-8u351的Java可执行文件路径,但问题仍未解决。
启动脚本内容
@ECHO OFF :: 设置内存时请带上单位字母,M=MB,G=GB,不要写1GB,应该写1G :: :: 64位系统内存设置 :: set memsixtyfour=4G :: 32位系统内存设置 - 最大约1.2G :: set memthirtytwo=1G :: Java路径,用双引号包裹(\"C:\\Path\\To\\Java\\bin\\java\"),写\"java\"则使用系统默认Java set javapath=\"java\" :: 传递给Java的额外参数,比如元空间、垃圾回收相关配置等 set jvmargs=\"\" :: 以下内容请勿修改 :: if $SYSTEM_os_arch==x86 ( echo OS is 32 set mem=%memthirtytwo% ) else ( echo OS is 64 set mem=%memsixtyfour% ) %javapath% -version echo Launching forge-1.12.2-14.23.5.2860.jar with '%mem%' max memory, jvm args '%jvmargs%' and arguments '%*' :: 在本行末尾添加nogui可禁用图形界面 :: %javapath% -Xmx%mem% %jvm_args% -Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=log4j2.xml -jar forge-1.12.2-14.23.5.2860.jar %* PAUSE
错误日志
OS is 64 java version "19.0.1" 2022-10-18 Java(TM) SE Runtime Environment (build 19.0.1+10-21) Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing) Launching forge-1.12.2-14.23.5.2860.jar with '4G' max memory, jvm args '""' and arguments '' A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:110) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70) at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34) Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap') at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 3 more Press any key to continue . . .
--- 更新于2023年5月23日 上午9:11 ---
我尝试强制bat文件使用正确版本的Java(全新安装的jdk-8u351),并指定了Java可执行文件所在bin目录的路径,但当前bat中该配置行仍为:
:: Java路径,用双引号包裹(\"C:\\Path\\To\\Java\\bin\\java\"),写\"java\"则使用系统默认Java set javapath=\"java\"
内容的提问来源于stack exchange,提问作者Green_lint
相关产品推荐
相关产品推荐

