服务端的bat启动文件简单教程

之前在和柑橘和早喵讨论服务器的时候,他们不约而同的表示了对服务器启动脚本的不了解。所以我这里写了一篇简单的bat启动脚本教程,希望能以我自己尚且很小白的教程来略微指导他们一下。

1. 什么是bat启动脚本?服务器为啥要用它?

bat实际上全称叫做批处理(Batch),批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中(所以那些用linux系统的,可能写的启动脚本和这个不一样)

感觉好像还是把问题讲复杂了,这么说吧:服务器的启动就需要批处理文件,就和MC需要启动器一样。这个批处理文件就起到了启动器的作用(实际上用批处理文件来做MC的启动器是完全可行的,但是要比服务器启动脚本复杂很多很多)

2. 怎么写bat来启动服务器

如果对一个服务器没有太高的要求,一般这些功能就够用了(至于什么指针压缩啥的,如果你的服务器是不多几个人玩的私服,这东西基本上用处不大。想了解的请去bbs找精品帖子,我技术不够,就不献丑了)

一般这些功能对于一个服务器启动就够了

  • 能找到java虚拟机的位置(必须)
  • 能分配服务器最大最小内存(可选,但是默认分配内存都很小,推荐还是写上)
  • 能自动重启(可选,但是推荐使用)

3. 开始写bat了(其实是照猫画虎从别人的服务器那学习过来的启动脚本)

记得这个示例的bat文件需要放置在你的服务端主文件夹里面
先上代码,然后解释

1
2
3
4
5
ECHO OFF
:head
"C:\Program Files\Java\jre1.8.0_101\bin\java.exe" -Xmx5G -Xms5G -jar Thermos-1.7.10-1614-server.jar
ping -n 10 127.1>nul
goto head
  1. ECHO OFF部分
    关闭回显功能,其实就是让打开后的命令提示行界面干净一点。没有强迫症的不写也无所谓。

  2. 循环语句部分

1
2
3
:head
<需要循环的代码>
goto head

这部分是用来重启服务器的,当执行到goto head部分,语句就会跳转到:head部分。这样可以循环执行语句来达到重启的目的

  1. java地址部分
    也就是文中的"C:\Program Files\Java\jre1.8.0_101\bin\java.exe"
    注意两件事情:首先引号不能省;其次引号里面应该是你的服务器java.exe文件的地址。

  2. 内存分配部分
    这里需要注意两件事情:

  • 你的java是64位的话才能分配1G以上内存,否则bat执行会出现错误
  • 内存分配语句要和java地址部分在同一行(因为是同时执行的,否则会出错)

-Xmx5G -Xms5G -jar,不解释了,前面是最大内存(示例为5G,实际你写的话要看看服务器给你的内存哦),后面是最小内存。-jar别忘了写。

  1. 启动部分指令
    也就是实例中的Thermos-1.7.10-1614-server.jar。实际你写的bat就是调用主文件夹下面的jar来启动服务端。这个依据你用的服务端不同名字不一样,比如我这里就用的是Thermos端。
    要严格注意这一段要和启动jar名字一模一样,连最后的.jar也别忘了写(即使系统隐藏了后缀名)

  2. 服务器重启部分
    也就是文中的ping -n 10 127.1>nul
    这里的意思就是每10秒ping自己的本服务器ip一次(准确地讲叫做回送地址,也就是文中的127.1。其实也就是127.0.0.1的简写,两个都是一样的)如果ping不了,批处理文件就执行下一行的语句,也就是这里的goto,然后返回:head部分,巧妙地达到了重启的目的。

    这里的>nul的意思是不在屏幕上显示数据,不然满屏幕ping的结果,你看着也不舒服对吧

    <未完待续>