Java 当 运行 一个 Minecraft 模组服务器 .bat 时出现异常

Java exception when running a Minecraft Modded Server .bat

我从 minecraft 技术页面下载了 1.12.2 包的服务器文件夹,然后 运行 LaunchServer.bat 我收到以下错误:

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:64)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        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* 

我的 java -version 输出:

java -version

java version "15.0.1" 2020-10-20

Java(TM) SE Runtime Environment (build 15.0.1+9-18)

Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing) 

对于环境变量:

我的JAVA_HOME设置为C:\Program Files\Java\jdk-15.0.1

我的路径包含 C:\Program Files\Java\jdk-15.0.1\bin

我尝试过的: 我查看了 .bat 文件并将其更改为 minecraft.net 推荐的行。还有一位对 运行 服务器有经验的朋友看了一下,他说批处理文件的文件和行看起来不错。所以我认为这是我的 java 及其安装方式的问题。在做了一些研究后,我从我的电脑中删除了 java 并重新安装了 jdk 15(最新的 post),jdk 8(因为一些论坛提到了一些servers only support 8), 以及我的电脑提示我下载最新的jre(jre1.8.0_271)。我还注意到我应该在环境变量中有一个 JAVA_HOME 变量,所以我手动输入了它以及上面复制的路径。

Modded Minecraft 1.12.2 仅支持 Java 8. 你得到的错误是因为你试图 运行 它与 Java 15. 将其更改为使用 Java 8 而不是。