前置说明:
- Minecraft服务端程序的运行需要Java环境,不同MC版本需要的Java版本也不同
Minecraft版本 | 1.6.x及更低 | 1.7.x - 1.15.x | 1.16.x | 1.17.x-1.20.x | 1.21以及更高 |
Java版本 | Java 7 | Java 8 | Java 11 | Java 17 | Java 21 |
注意,下载java安装包的时候需要选择对应操作系统的,例如Windows系统要选择 bin.exe
或者 bin.msi
结尾的
本文包含以下内容:
JAVA版服务器
- 搭建一个JAVA原版服务器
- JAVA版服务端的程序文件结构组成
- JAVA版当前流行的多种服务端和他们的文件结构组成
一、立即搭建一个官方原版服务端
首先我们去Minecraft官网下载一个最新的官方服务端https://www.minecraft.net/zh-hans/download/server
目前的最新版本是1.18.1,所以官方提供了1.18.1版本的服务端程序下载,我们把这个文件下载下来,最好新建一个文件夹来存放它
然后我们要安装 Java 运行环境:https://www.oracle.com/java/technologies/downloads/
对于1.18.1版本,我们需要下载java17或者jdk17.
如果上述网站无法下载,大白云资源站也提供了各个版本的下载:https://file.dabaiyun.net/01-%E5%B7%A5%E5%85%B7%E8%BD%AF%E4%BB%B6/Java
我们下载 jdk-17_windows-x64_bin.exe
然后启动并安装,最好全部保持默认设置
在其他较老的教程种总是提到配置JAVA环境变量的操作,但是在现在的新版java安装完成后,系统环境变量会被自动配置完成,因此我们无需手动配置环境变量
接下来我们回到之前下载的Minecraft服务端,在文件夹里新建一个文本文档
文件名命名为 启动服务器.bat
弹出的提示选择是
如果你的文件不会显示文件后缀,点击上方的查看
,然后勾选文件扩展名
然后右键点击我们刚刚新建的启动服务器.bat
,点击编辑
写入以下内容:
java -Xmx1G -jar minecraft_server_1.18.1.jar
按下Ctrl + S
保存,并退出
在启动之前,我们先了解一下刚刚启动服务器.bat
的内容
首先这是个.bat文件
该后缀告诉Windows系统,这个文件的内容是一串可以执行的代码,双击后会运行
java
调用系统环境变量配置所指向的java主程序,在我的这台示例电脑上,其等效于:C:\Program Files\Java\jdk-17.0.1\bin\java.exe
-Xmx1G
表示给这个程序分配内存最大值为1GB,其中 Xmx
表示最大
-jar
表示要启动的程序包,在这里我们要启动minecraft服务端程序minecraft_server_1.18.1.jar
接下来,双击启动启动服务器.bat
,会弹出一个窗口,我们可以看到,服务器已经跑起来了
但是你会发现窗口闪退了,不管重新启动多少次都是这样
而且文件夹里多了一些东西
由于命令行程序执行完毕后会自动退出,导致错误信息也看不到
这里我们重新编辑启动服务器.bat
加上一行内容:pause
这个单词意思为暂停,即程序运行到这一句会暂停而不是退出,这样我们就能看到我们的程序到底发生了什么
再次启动
注意这一句:You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
其中文意思为 您需要同意EULA才能运行服务器。去eula.txt获取更多信息
现在我们打开eula.txt
将其中的false
改成true
按下Ctrl + S
保存,并退出
然后重新启动服务器,服务器正常启动了,初次启动会生成很多文件,包括存档等,需要很长时间
当我们看到 Done! 这个字的时候,说明服务器已经启动完成了
如果你开服务器的电脑是云服务器的话,例如阿里云轻量应用服务器,那么可以直接打开MC游戏,输入ip地址,就可以进入了
记得在防火墙放行 TCP协议 25565端口
二、服务端程序文件组成结构
现在服务器已经运行起来了,接下来我们关注一个Minecraft服务器到底有哪些文件组成
- libraries - 基本程序包,服务器运行必不可少的文件之一,包括初次启动生成的和少许从网络上下载的文件
- logs - 日志文件
- versions - 版本库,现在版本的mc服务端允许多个不同版本的服务器存放在一个文件夹里
world - 服务器存档,包括主世界、地狱、末地的地图,和所有玩家数据
- DIM1 - 末地地图
- DIM-1 - 地狱地图
- playerdata - 玩家数据
- 其他文件均为主世界地图数据
- banned-ips.json - 被封禁的ip
- banned-players.json - 被封禁的玩家id
- ops.json - 服务器OP玩家id
- server.properties - 服务器配置文件。极其重要!下文将详细介绍
- usercache.json - 玩家数据缓存
- whitelist.json - 白名单,需要在配置文件中开启才生效(详见下文)
Server.properties 服务器配置文件详细说明
为了更好的编辑文本,推荐使用NotePad代替记事本,点此下载
服务器配置项目众多,我们只关注最常用的几个项目,其中true表示开启,false表示关闭
enable-command-block=false - 允许命令方块
gamemode=survival - 服务器默认游戏模式,survival生存,creative创造
level-name=world - 存档文件夹名称
motd=A Minecraft Server - 服务器标语,也就是在多人游戏界面可以看到的字符,这个通常不关注,因为大多数服务器会安装标语插件
pvp=true - 服务器是否允许pvp
difficulty=easy - 服务器难度,easy简单,normal普通,hard困难
max-players=20 - 服务器最大玩家数
online-mode=true - 开启正版验证
allow-flight=false - 允许随意飞行
view-distance=10 - 视野距离,单位区块,通常不要超过7不然会吃性能
server-ip= - 服务器监听网络数据包的目标IP,不懂得网络知识的话请务必留空
allow-nether=true - 开启地狱
server-port=25565 - 服务器端口(重要!)
simulation-distance=10 - 模拟距离,在这个距离区块外的区块只会加载但是不会运算(降低服务器负担)这个值不要超过view-distance不然指不定出什么奇怪的特性
hardcore=false - 极限模式,请勿作死
white-list=false - 白名单,请务必配合登入系统使用(登入插件或者正版验证)
broadcast-console-to-ops=true - 将控制台操作广播给op,一般技术性调试会使用,也就是说在服务器控制台(上面咱启动服务器后出现的窗口)打指令,会告诉所有在线的op以帮助进行技术性操作
spawn-npcs=true - 允许出生点保护区域内生成npc,例如村民,商人
spawn-animals=true - 允许出生点保护区域内生成动物
spawn-monsters=true - 允许出生点保护区域内生成怪物
spawn-protection=16 - 出生点保护半径,在这个半径球体内的出生点附近区域不能被非op玩家挖掘和建造