You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Crontab启动Tmux会话运行Minecraft服务时提示无法访问Jar文件的问题求助

通过Crontab启动Tmux会话运行Minecraft服务时提示无法访问Jar文件的问题求助

我之前也碰到过一模一样的问题,折腾了好一会儿才搞明白——核心原因就是cron的默认工作目录不是你的Minecraft Jar文件所在的目录,而tmux会话会继承cron的环境和工作路径,所以自然找不到Jar文件啦。

先给你两个最直接的解决办法,选一个就行:

方法一:在脚本开头切换到Jar文件所在的绝对目录

修改你的bash脚本,在所有命令之前先切换到Jar所在的文件夹,比如你的Jar文件放在/home/jezza/minecraft-server里,就加上cd命令:

#!/bin/bash

# 先切换到Minecraft服务器Jar所在的绝对路径,记得替换成你自己的目录!
cd /home/jezza/minecraft-server

# 创建新会话并运行命令
tmux new-session -d -s mc
tmux set-option -t mc remain-on-exit on
tmux send-keys -t mc "java -Xmx6G -jar fabric-server-mc.1.19.4-loader.0.14.19-launcher.0.11.2.jar nogui" Enter

方法二:直接在java命令里使用Jar文件的绝对路径

不用切换目录,直接把Jar文件的完整路径写在命令里,这样不管工作目录在哪都能找到它:

#!/bin/bash

# 创建新会话并运行命令
tmux new-session -d -s mc
tmux set-option -t mc remain-on-exit on
# 这里把Jar的绝对路径写全,替换成你自己的路径!
tmux send-keys -t mc "java -Xmx6G -jar /home/jezza/minecraft-server/fabric-server-mc.1.19.4-loader.0.14.19-launcher.0.11.2.jar nogui" Enter

补充说明

你手动运行脚本没问题,是因为手动执行时你的终端工作目录正好是Jar所在的文件夹,但cron默认的工作目录是你的用户主目录(比如/home/jezza),所以它会去主目录找那个Jar,自然找不到啦。

另外你提到指定java绝对路径没用,这个其实和Jar找不到的问题没关系,不过可以用which java命令确认一下系统里java的真实路径,确保脚本里用的是正确的(比如/usr/bin/java),不过主要问题还是工作路径的事。

修改完脚本后,记得确保脚本还是可执行状态(chmod +x your-script-name.sh),然后重新保存你的cron任务就行啦。

备注:内容来源于stack exchange,提问作者Jezza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 16:14:41