使用JDK 8启动FTB Infinity Evolved服务器失败求助
问题:FTB Infinity Evolved服务器启动失败(Log4j类缺失)
在Arch Linux机器上下载并解压FTB Infinity Evolved服务器包后,运行安装脚本与启动脚本时出现以下错误,已确认使用JDK 8,但问题仍未解决。
错误日志
Starting server OpenJDK 64-Bit Server VM warning: ignoring option PermSize=256M; support was removed in 8.0 OpenJDK 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector is deprecated and will likely be removed in a future release A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:43) at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:12) Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/Level at net.minecraft.launchwrapper.Launch.launch(Launch.java:94) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) ... 6 more Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Level at java.net.URLClassLoader.findClass(URLClassLoader.java:387) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 8 more
当前目录结构
changelogs FTBserver.jar ServerStart.sh config libraries settings.bat eula.txt minecraft_server.1.7.10.jar settings.sh FTBInstall.bat modpack version.json FTBInstall.sh mods FTBServer-1.7.10-1614.jar ServerStart.bat
解决思路
- 检查
libraries目录完整性:确认libraries/org/apache/logging/log4j路径下存在对应版本的Log4j jar包,若缺失,执行./FTBInstall.sh --force-reinstall强制重新安装依赖,或手动补充缺失的jar文件。 - 清理废弃的JVM参数:打开
ServerStart.sh,删除PermSize=256M参数(JDK 8已移除对该参数的支持),同时确保脚本中指定的Java路径指向JDK 8(例如/usr/lib/jvm/java-8-openjdk/bin/java)。 - 验证Java版本一致性:执行
java -version和javac -version,确认输出均为JDK 8版本,避免系统中多Java版本导致启动时调用了非目标版本。 - 检查启动脚本类路径:确认
ServerStart.sh中-cp参数包含了libraries目录下的所有jar包,确保Log4j能被正确加载。 - 修复目录权限:执行
chmod -R u+rwX .,确保当前用户对服务器目录下所有文件和目录拥有读写权限,避免因权限不足导致依赖无法读取。
内容的提问来源于stack exchange,提问作者Warriorjacq9
相关产品推荐
相关产品推荐

