Ubuntu Minecraft服务器java.lang.ClassCastException:class jdk.internal.loader.ClassLoaders$AppClassLoader
我正在尝试运行我的改装mc服务器。它可以在wondows上运行,但当我尝试在ubuntu上运行它时,会出现以下错误:Ubuntu Minecraft服务器java.lang.ClassCastException:class jdk.internal.loader.ClassLoaders$AppClassLoader,java,ubuntu,minecraft,minecraft-forge,Java,Ubuntu,Minecraft,Minecraft Forge,我正在尝试运行我的改装mc服务器。它可以在wondows上运行,但当我尝试在ubuntu上运行它时,会出现以下错误: saif@Saif-Ubuntu:~/Desktop/Minecraft Server$ java -Xmx2048M -Xms2048M -jar forge-1.12.2- 14.23.5.2854.jar A problem occurred running the Server launcher.java.lang.reflect.InvocationTarge
saif@Saif-Ubuntu:~/Desktop/Minecraft Server$ java -Xmx2048M -Xms2048M -jar forge-1.12.2-
14.23.5.2854.jar
A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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)
... 6 more
saif@Saif-Ubuntu:~/Desktop/Minecraft服务器$java-Xmx2048M-Xms2048M-jarforge-1.12.2-
14.23.5.2854.jar
运行Server launcher.java.lang.reflect.InvocationTargetException时出现问题
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:566)
位于net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
位于net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
原因:java.lang.ClassCastException:class jdk.internal.loader.ClassLoaders$AppClassLoader无法强制转换为class java.net.URLClassLoader(jdk.internal.loader.ClassLoader$AppClassLoader和java.net.URLClassLoader位于加载程序“引导”的模块java.base中)
在net.minecraft.launchwrapper.Launch.(Launch.java:34)
位于net.minecraft.launchwrapper.Launch.main(Launch.java:28)
... 还有6个
我试过使用jdk 11和jdk 8,但无论如何我都看不出这两种方法都不管用。有人知道我可以尝试什么吗?当您不使用JDK 8时,会出现此问题,请再次尝试使用它,卸载JDK 11并使用
java-version
Forge检查您的JDK版本,正如我现在所知,遗憾的是,它只支持java 8开发工具包。通过键入java--version
确保您正在运行JDK8。尝试卸载其他版本或指定应使用的版本。我建议阅读我知道了如何在不卸载任何软件的情况下切换java版本:
'sudo更新备选方案--配置java'
感谢Joseph Sible、Novarch和Likqez将我推向了正确的方向。我怀疑您在认为使用JDK 8时并没有实际使用JDK 8,而实际使用JDK 8会解决这个问题。