Skip to content

解决 "Unable to access jarfile" 错误

看到这个错误了?

当你启动服务器时,控制台显示:

Error: Unable to access jarfile server.jar

或者类似的错误信息。

别慌! 这个错误很常见,而且很好解决。

这是什么意思?

简单来说:系统找不到你让它启动的那个 jar 文件。

就像你让朋友帮你拿桌上的"红色杯子",但桌上其实是个"蓝色杯子",朋友就会说"找不到红色杯子"。

两个主要原因

原因 1:jar 文件名写错了(最常见)

你的启动命令里写的文件名,和实际的文件名不一样。

怎么检查?

  1. 打开麦块联机的文件管理器
  2. 看看根目录下的 jar 文件到底叫什么名字
  3. 和你的启动命令对比一下

举个例子

你在文件管理器看到的文件叫:

forge-1.20.1-47.2.0.jar

但你的启动命令写的是:

bash
java -Xms2G -Xmx4G -jar server.jar nogui

这就对不上了! 系统找不到 server.jar 这个文件,因为实际文件叫 forge-1.20.1-47.2.0.jar

怎么解决?

把启动命令改成实际的文件名:

bash
java -Xms2G -Xmx4G -jar forge-1.20.1-47.2.0.jar nogui

注意事项

  • 文件名要一模一样,包括大小写、数字、符号
  • Server.jarserver.jar 是不同的(大小写不同)
  • 不要漏掉版本号,比如 1.20.1-47.2.0
  • 不要手打文件名,直接从文件管理器复制粘贴,避免打错

原因 2:服务端有自带的启动脚本

有些服务端(特别是整合包)会自带启动脚本,比如 run.shstart.shstartserver.sh 这些文件。

如果你的服务端有这些脚本,就不应该用 java 命令启动,而是应该用脚本启动

怎么检查?

打开文件管理器,看看根目录有没有 .sh 结尾的文件,比如:

  • run.sh
  • start.sh
  • startserver.sh
  • start_server.sh

怎么解决?

如果有这些脚本文件,把启动命令改成:

bash
bash ./run.sh

或者

bash
bash ./start.sh

注意: 文件名前面要加 ./,表示当前目录下的文件。

为什么会这样?

有些整合包的启动脚本里已经写好了所有启动参数,包括:

  • 要启动哪个 jar 文件
  • 用多少内存
  • 其他特殊设置

所以你只需要运行脚本就行了,不用自己写 java 命令。


小技巧

  1. 复制粘贴文件名 从文件管理器直接复制文件名,不要手打,避免打错字

  2. 检查大小写Server.jarserver.jar 是不同的文件

  3. 优先使用脚本 如果有 .sh 脚本文件,优先用脚本启动

  4. 保留完整文件名 不要省略版本号,比如 forge-1.20.1-47.2.0.jar 不能简写成 forge.jar


还是不行?

如果按照上面的方法还是报错,可能是:

  1. 文件在子文件夹里 检查 jar 文件是不是在某个子文件夹中,如果是,把所有文件移动到根目录

  2. 文件确实不存在 重新上传服务端,确保 jar 文件或脚本文件都上传了

  3. 文件损坏 重新下载或上传服务端

如果还是解决不了,联系客服并提供:

  • 完整的错误信息截图
  • 文件管理器的文件列表截图
  • 你使用的启动命令

祝你游戏愉快!

九万字
九万字
黄诗扶