Minecraft Tekkit Lite服务器启动类转换异常求助(Technic Launcher)
解决Tekkit Lite服务器启动时的ClassCastException错误
哎,这个问题我太熟了!之前帮几个朋友搭Tekkit Lite服务器都碰到过一模一样的报错。
问题根源
你看到的这个Exception in thread "main" java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoader$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader错误,本质是版本兼容性问题:
- Tekkit Lite是基于Minecraft 1.6.4的老模组包,它依赖的FML(Forge Mod Loader)版本非常旧,启动逻辑硬依赖Java 8的
URLClassLoader实现。 - 从Java 9开始,JDK彻底重构了类加载器体系,
AppClassLoader不再继承URLClassLoader了,这就导致FML启动时的类型转换直接失败。
解决步骤
1. 安装Java 8(必须是这个版本)
Tekkit Lite只认Java 8,不管你系统里装了多少更高版本的Java,都得单独装个Java 8。安装完成后,找到它的java.exe路径,比如Windows下通常是C:\Program Files\Java\jre1.8.0_xxx\bin\java.exe(xxx是具体的更新版本号)。
2. 修改你的启动批处理文件
把原来的启动命令里的java换成Java 8的完整路径,比如:
"C:\Program Files\Java\jre1.8.0_381\bin\java.exe" -Xmx3G -Xms2G -jar TekkitLite.jar nogui pause
这样就能强制用Java 8来启动服务器,绕开系统默认的高版本Java。
可选:用JAVA_HOME指定版本
如果你不想写死路径,也可以通过设置环境变量临时指定Java 8的路径:
set JAVA_HOME=C:\Program Files\Java\jre1.8.0_381 "%JAVA_HOME%\bin\java.exe" -Xmx3G -Xms2G -jar TekkitLite.jar nogui pause
额外提醒
Tekkit Lite是真的老,别想着用Java 9+来兼容它——官方从来没更新过适配高版本Java的补丁,老老实实用Java 8就完事了,启动后应该就能正常加载模组了。
内容的提问来源于stack exchange,提问作者Miyte Pithon
相关产品推荐
相关产品推荐

