跳转到内容

开启服务端

你已经做好了准备工作,开始启动你的服务器了,你需要编写一个 启动脚本 来启动它。

最简单的启动命令当然是 java -jar

现在你把下载好的服务端核心放到一个空文件夹里

在这个文件夹里创建一个 txt 文件,重命名为 bat 后缀的文件 如 start.bat

文件看不到后缀怎么办

用你前面下的文本编辑器编辑这个文件,写入以下信息并保存,然后双击 start.bat

start.bat
java -Xms2G -Xmx2G -jar 核心名.jar --nogui

双击启动脚本后,大概会卡在 Downloading mojang_x.x.x.jar,请耐心等待

一旦下载完成,他会提示:

You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

用文本编辑器打开此目录下生成的 eula.txt ,将里面的 eula=false 改为 eula=true

eula 就像是用户协议一样的东西,你想知道讲了啥,点 这里

改好之后重新开启服务器,当出现以下字样说明服务器已经成功开启。

Done (6.554s)! For help, type "help"

在脚本的最后加上 pause,让你可以看到 bat 的输出,避免黑窗口一闪而过的情况。

Terminal window
java -jar paper.jar
pause

使用通配符来匹配服务端核心,这样每次更新核心就不需要更改脚本内容或者重命名文件的名字了。

Terminal window
java -jar *.jar
java -jar paper-*.jar
java -jar leaf-*.jar

当服务器崩溃或关闭时,使用脚本实现自动重启:

Terminal window
@echo off
:start
java -Xmx4G -Xms1G -jar server.jar nogui
echo 服务器已关闭,5 秒后重启...
timeout /t 5
goto start

使用变量拆分脚本内容,不再堆在同一行,使得内容更清晰,也方便修改。

示例脚本
@echo off
set JAVA_OPTS=-Xmx4G -Xms1G -XX:+UseG1GC
set SERVER_JAR=paper-*.jar
set ADDITIONAL_ARGS=nogui
java %JAVA_OPTS% -jar %SERVER_JAR% %ADDITIONAL_ARGS%
pause

如果你的服务器卡在:

Downloading mojang_x.x.x.jar

请尝试使用科学上网。

我不会在命令行界面 (CMD / 终端 / PowerShell) 使用科学上网

Section titled “我不会在命令行界面 (CMD / 终端 / PowerShell) 使用科学上网”

请确定你的科学上网是可用的,不多赘述。

在命令行界面 (一般情况下,一个黑 / 蓝框框) 中执行这两条

Terminal window
set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

如果在 Linux 下则是这样的:

Terminal window
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

其中 7980 是你的科学上网软件设置的端口,若有不同,请替换。

注:输入之后仅对这个命令行窗口有效,开启新的 / 关闭它 之后要重新输入。

大佬们,浏览器能用不是 cmd 能用,不然你猜我为什么写这个。

如果你用的是 Windows,你需要在启动脚本 最前面 加上 chcp 65001,否则容易 乱码

如上面的方法无效,检查你的系统区域设置是否为中国和中文语言包是否下载。

比如你原来的启动脚本长这样

Terminal window
java -Xms2G -Xmx2G -jar server.jar --nogui

你需要改成这样

Terminal window
chcp 65001
java -Xms2G -Xmx2G -jar server.jar --nogui

有些时候写好启动脚本启动后,报错Error: Unable to access jarfile xxx.jar,但是相同目录下明明有xxx.jar

像这样:

启动后报错,此时我们可以查看文件后缀名 (不懂如何打开请点这里)

然后你就会看到这样的惊奇一幕

此时,你只需要把 xxx.jar.jar 改成 xxx.jar 就可以正常启动了

使用安装器安装后,你无法在根目录找到 xxx.jar,同时会生成一个 bat 脚本。里面大概是这样的

Terminal window
@echo off
REM Forge requires a configured set of both JVM and program arguments.
REM Add custom JVM arguments to the user_jvm_args.txt
REM Add custom program arguments {such as nogui} to this file in the next line before the %* or
REM pass them to this script directly
java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.18.2-40.1.60/win_args.txt %*
pause

这是因为新版的 Forge 和 NeoForge 将服务器 jar 包放在 libraries 文件夹里面,并通过自带的启动脚本进行启动。 前面 REM 开头的是注释,大概就是说

Forge 需要一组配置好的 JVM 和程序参数。 向 user_JVM_args.txt 添加自定义 JVM 参数 在%*或之前的下一行将自定义程序参数(如 nogui)添加到此文件中 直接将它们传递给此脚本

此时你会发现有一个 user_JVM_args.txt 在你的根目录下,打开他,将原来的

Terminal window
java -Xms2G -Xmx2G -jar server.jar --nogui

java-jar 之间的内容填写到该文件中。

如果你想使用 nogui,就像注释里面说的,在 @libraries/net/minecraftforge/forge/1.18.2-40.1.60/win_args.txt%* 之间写入 nogui

就像这样

Terminal window
java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.18.2-40.1.60/win_args.txt nogui %*