You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

任务计划程序运行Minecraft服务器批处理文件异常及Windows开机自启替代方案咨询

任务计划程序运行Minecraft服务器批处理文件异常及Windows开机自启替代方案咨询

兄弟,我之前折腾Minecraft服务器自启的时候也碰到过和你一模一样的问题,给你捋捋原因和解决办法:

为啥任务计划程序和手动双击bat的效果不一样?

主要是这几个坑:

  1. 工作目录不匹配:手动双击bat的时候,系统会自动把bat所在的文件夹作为工作目录,但任务计划程序默认的工作目录可能是系统目录(比如C:\Windows\System32),这时候你的java -jar命令找不到server.jar,启动失败就直接关窗口了。
  2. 权限/运行环境差异:就算你没设密码,任务计划的运行权限和你手动登录后的权限还是有区别,比如有没有读取某些文件的权限,或者是否以最高权限运行。
  3. 错误信息被忽略:手动双击时窗口会停着显示错误,但任务计划里如果没设置保留窗口,启动失败就直接闪退,你根本看不到为啥失败。

先试试修改bat和任务计划的设置来解决

第一步:修改你的批处理文件

把bat改成这样,先切换到服务器jar所在的目录再启动,还能留着窗口看错误:

@echo off
:: 切换到Minecraft服务器所在的目录
cd /d "C:\Users\{username}\Documents\Minecraft server"
:: 启动服务器
java -jar server.jar
:: 如果启动失败,窗口会停住显示错误,按任意键才关闭
pause

把里面的{username}换成你自己的用户名哈。

第二步:调整任务计划程序的设置

打开任务计划,找到你的任务,右键编辑:

  • 常规选项卡:勾选「使用最高权限运行」,有时候权限不够会偷偷失败。
  • 操作选项卡:编辑「启动程序」的操作,在「起始于(可选)」里填上服务器文件夹的路径,比如C:\Users\{username}\Documents\Minecraft server,这一步是强制指定工作目录,避免找不到jar。
  • 条件选项卡:如果是台式机,取消勾选「只有在计算机使用交流电源时才启动此任务」,不然插电源的时候才会跑,拔了就停。
  • 设置选项卡:取消勾选「如果任务运行时间超过X小时就停止」,不然服务器跑着跑着就被强制关了。

要是还是不行,试试这两个更简单的替代方案

方案一:用开机启动文件夹(最简单)

直接把你的bat文件的快捷方式拖到这个目录里:
C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
这样你开机登录后(因为你没设密码,应该是自动登录),系统就会自动运行这个bat,效果和你手动双击完全一样,几乎不会出问题。

方案二:注册成Windows服务(适合需要后台运行,不用登录也能启动)

如果你希望服务器在开机后不用登录用户也能跑,可以把它注册成Windows服务,用NSSM(一个轻量的服务管理工具)就行:

  1. 下载NSSM(不用安装,解压就能用),把它放到一个固定的文件夹里(比如C:\Tools\NSSM)。
  2. 以管理员身份打开cmd,切换到NSSM的目录,运行:
    nssm install MinecraftServer
    
  3. 在弹出的设置窗口里填这些:
    • 路径:找到你电脑上java.exe的路径,比如C:\Program Files\Java\jdk1.8.0_301\bin\java.exe(根据你装的Java版本来)
    • 参数-jar "C:\Users\{username}\Documents\Minecraft server\server.jar"
    • 起始目录C:\Users\{username}\Documents\Minecraft server
  4. 点「安装服务」,然后打开Windows服务管理器,找到「MinecraftServer」,把启动类型改成「自动」,以后开机就会自动后台运行服务器了。

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

火山引擎 最新活动