使用 shell 脚本时,minecraft/java 会抛出错误

使用 shell 脚本时,minecraft/java 会抛出错误

基本:

  1. 这是一次学习经历,我是新手,做这件事是为了扩展我的知识。所以如果你能详细解释一下……我会很感激的。
  2. 这是 Ubuntu Server 的新安装,它是最新的。
  3. 我安装了最新版本的 OpenJDK 8。
  4. 我安装了 Minecraft (1.12.2) 的 Forge 版本;最新的 Forge。
  5. 我可以使用以下命令在命令行中启动 minecraft 服务器:

    java -Xms1024M -Xmx4096M -jar forge-1.12.2-14.23.5.2854.jar nogui

  6. 当尝试使用脚本(.sh)时,minecraft 启动,但随后抛出有关分类文件的错误并使我退出 ssh 会话。

    #!/bin/sh
    
    java -Xms1024M -Xmx4096M -jar forge-1.12.2-14.23.5.2854.jar nogui
    

该脚本位于 minecraft 程序的目录中,它确实启动了。我不明白的是,使用完全相同的格式,这个却不行。所以……我只能得出这样的结论:我遗漏了一些关键的东西,但到目前为止我所做的教程和研究都没有涵盖这些东西。我需要一些帮助。谢谢您的宝贵时间。

编辑 1:经过我对我的 Wayback 档案的一番思考,这里是我使用该脚本的结果:https://pastebin.com/61Nfb5CQ

这些错误是否可能是由于脚本未以 inadaquit 权限运行而导致的?

编辑2:将 sudo 命令添加到脚本后,我得到了他的:https://pastebin.com/V6pJyCvj 结果……还是没运行……但运行得还不错。哦,这是文件目录,也许这里有东西https://imagebin.ca/v/5PjVcSb4D5OA

答案1

该错误似乎与权限不足有关。这可能是由于您没有在行sudo首使用。这是 Minecraft 正常运行所必需的。您的代码中有多个实例,如下所示:

2020-06-11 09:50:54,060 main ERROR Cannot access RandomAccessFile java.io.FileNotFoundException: logs/debug.log (Permission denied) java.io.FileNotFoundException: logs/debug.log (Permission denied)

注意日志中某些部分的内容(Permission denied)。这是因为,顾名思义,您没有权限执行所请求的任务。这通常通过使用sudo获取 root 权限来解决。

对于您来说,正确的代码应该是:

#!/bin/sh

sudo java -Xms1024M -Xmx4096M -jar forge-1.12.2-14.23.5.2854.jar nogui

在程序开始执行时,它会要求您输入密码以获取 root 权限。这是非常正常的。

答案2

您的脚本run1.sh正在尝试访问/修改某些受保护的文件,甚至尝试在受保护的文件夹中创建文件。从这一点来看,您有两个选择:

  1. 以 身份执行该脚本sudo
  2. 查看此脚本并仅为必要的文件夹/文件授予权限。

相关内容