这是一个新人友好的MC开服脚本,基于Windows的BAT脚本。
这篇里的代码其实搬自本人B站发表的文章<=点击观看原文
核心功能
这段脚本的核心功能包括:
首次运行时引导用户填写服务器启动配置并自动保存配置
检查 Java 环境和服务器核心文件是否存在
使用 Aikar 推荐的 JVM 参数优化服务器性能
自动重启服务器,保证稳定运行
亮点
第一次运行自动创建配置文件,无需每次输入繁琐命令
启动前暂停并打印设置信息,确保启动无误
人性化交互与防呆提示,错误提示直观易懂,便于问题排查
服务端关闭后自动等待 10 秒并重启,防止服务器异常关闭造成玩家跑路
性能优化的 JVM 参数启动,减少服务器占用资源
代码
@echo off
setlocal enabledelayedexpansion
if not exist startconfig.txt (
echo 正在创建配置文件...
echo 在开始之前,我们将会问您几个基础问题,以帮助您以后更顺利开服!
echo (注:请不要删除目录下的startconfig.txt,否则要重新设定配置!)
echo 没下载java环境的可以去(www.java.com)下载
set /p line1=java版本路径(路径要加英文的""!,\bin\java.exe一般都是固定的):
set /p line2=服务器核心文件名(要带后缀):
set /p line3=服务器内存占用(单位G):
echo !line1!> startconfig.txt
echo !line2!>> startconfig.txt
echo !line3!>> startconfig.txt
echo 成功创建配置文件
)
:: ====检测是否有Java环境及服务器核心(防呆)====
set file="startconfig.txt"
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" %file%') do (
if %%a==1 set useJava=%%b
if %%a==2 set server=%%b
if %%a==3 set useram=%%b
)
echo %useJava% | find "\bin\java.exe" >nul
if not %errorlevel% equ 0 (
echo =====================================
echo [ 未检测到java环境 ! ] ╮( ̄▽ ̄")╭
echo =====================================
echo 配置文件中的Java路径错误!
echo 请检查配置文件(startconfig.txt)中第一行内容。
echo \bin\java.exe一般都是固定的!!!
pause
exit
)
if not exist %useJava% (
echo =====================================
echo [ 未检测到java环境 ! ] ╮( ̄▽ ̄")╭
echo =====================================
echo 未找到配置中的文件!
echo 文件可能被移动或删除,请检查文件所在位置并更改配置文件(startconfig.txt)中第一行内容。
echo PS:如果是安装到u盘,可能是盘符改变导致的问题。
pause
exit
)
if not exist %server% (
echo =====================================
echo [ 未找到服务器核心 ! ] ╮( ̄▽ ̄")╭
echo =====================================
echo 未找到配置中的文件!
echo 请检查配置文件(startconfig.txt)中第2行的服务器核心名字是否正确!
pause
exit
)
echo =====================================
echo 检测到java环境及核心,准备开启服务器!
echo =====================================
echo =====[请确认以下信息]=====
echo Java环境:%useJava%
echo 服务器核心:%server%
echo 服务器占用内存:%useram%GB
pause
:: ====启动服务器====
:startserver
title %server% >nul
echo 正在启动服务器 %server% ...
ping 127.0.0.1 -n 3 >nul
cls
echo ------------------------------------------------------------------
echo --
echo -- 正在启动%server%服务器
echo -- 请稍等...
echo --
echo ------------------------------------------------------------------
%useJava% -Xms%useram%G -Xmx%useram%G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar %server% nogui
echo -----------------------------------------------------------------
echo 服务器已关闭
echo -----------------------------------------------------------------
echo 服务器将在10秒后重启,您也可以直接关闭程序!
ping 127.0.0.1 -n 11 >nul
goto startserver
::本脚本由B站“mcBill-唯民”制作!
::优化启动脚本来源:https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/使用教程
打开记事本(Win+R输入notepad)
把上面的内容复制(Ctrl+C),粘贴(Ctrl+V)到记事本里
保存(Ctrl+S),后缀改为
.bat,编码改为ANSI即可放到你服务器根目录下(同服务器核心)
评论