Minexa说明书
基础服务端基础

服务端目录结构与文件说明

server.jar、eula.txt、server.properties、world、plugins、logs 各是什么;哪些能删、哪些千万别动。

你想改端口,教程说“打开 server.properties”;你想备份,教程说“拷走 world”。你顺手删了两个看着没用的文件,然后服务器起不来了。

服务端目录里确实有一半是可以随便删的临时文件,另一半删了就报废。区别不在名字好不好认,而在它是不是服务端运行时必须读的东西——以及有没有一份副本在别处。

下面把真实路径、每个文件的作用、哪些绝对不能动,一次说清,最后再给一条“想腾空间该按什么顺序删”的路线。

本页要点
  • 服务端唯一根目录在公共存储的 Minexa/Minecraftserver 下,界面显示名可能和真实文件夹名不同。

  • 值钱的只有四样:world 三个目录和 server.properties,再加上插件配置与名单文件。

  • logs/、crash-reports/ 可以删,但排错前先留着;libraries/ 删了核心起不来。

  • 备份不在服务端目录里,在 /storage/emulated/0/世界与服务器的备份/。

  • 运行中不要删、改或覆盖 world 和 jar,这是最容易毁档的操作。

先记住真实路径#

所有服务端都在同一个根目录下,一个服一个子目录:

文本
/storage/emulated/0/Minexa/Minecraftserver/<目录名>/

关于这个路径,有四个容易搞错的地方:

  1. 文件管理页里的根目录显示为 servers/,它对应的就是这个 Minecraftserver 目录,不是另一份拷贝。

  2. 下载页卡片底部那句“下载路径:home/servers/…”是旧文案,已经过时。 写路径、贴命令时别照着它抄。

  3. 旧版本的私有目录只作迁移来源,不参与运行,冷启动时会问你要不要迁移。

  4. 中文服务器名落盘时会被转成 ASCII 并加 6 位哈希后缀,所以实际文件夹名可能和界面上显示的服务器名完全不同。写路径时用 <目录名> 占位,实际名字去下载页的「文件夹」信息里核对。

另外,Android 11 及以上要先给「所有文件访问」权限,否则这个目录写不进去——表现不是报错,而是“文件明明在路上,服务端读不到”。

一棵目录树#

下面是一个 Java 系核心的典型结构。不是每个服都有全部文件——插件、模组、libraries 取决于你装了什么核心。这些文件也不是下载时就有的,是核心第一次启动时逐个生成的,顺序见 服务端是怎么跑起来的(含首次启动)。

文本
/storage/emulated/0/Minexa/Minecraftserver/<目录名>/
├── server.jar                  # 核心本体(Paper / Vanilla 等)
├── eula.txt                    # EULA 同意记录,应用已写入 true
├── server.properties           # 端口、MOTD、正版验证、视距…
├── ops.json                    # OP(管理员)名单
├── whitelist.json              # 白名单
├── banned-players.json         # 玩家封禁名单
├── logs/
│   ├── latest.log              # 核心写的最新一次启动日志
│   └── mineserve-console.log   # 应用侧记录的控制台输出
├── crash-reports/              # 核心崩溃时生成的报告
├── world/                      # 主世界
├── world_nether/               # 下界
├── world_the_end/              # 末地
├── plugins/                    # Bukkit 系插件(装了才有)
├── mods/                       # 模组(装了才有)
├── config/                     # 模组/插件的配置(常见)
├── libraries/                  # Forge / NeoForge 的依赖库
└── .mineserve/tmp              # 应用给服务端用的临时目录

几处版本差异:

  • Forge / NeoForge 没有可执行的 server.jar,入口是 unix_args.txt(Forge ≤1.16 例外,是 forge-*.jar),旁边必有 libraries/;Quilt 要有 quilt-server-launch.jar;PocketMine-MP 执行的是 PocketMine-MP.phar。

  • PowerNukkitX 的配置在 pnx.yml,Allay 在 server-settings.yml,都不叫 server.properties。

  • BDS 解压后有 bedrock_server 和 bds-version.txt,但没有 eula.txt;它靠 PRoot + box64 转译运行,要先初始化专用环境,详见 官方基岩版(BDS)开服。

服务端目录里没有 backups 文件夹

备份不在服务端目录里。当前备份统一放在公共存储的 /storage/emulated/0/世界与服务器的备份/,整服备份是 zip 文件。所以“把整个服务端目录拷走”≠“有备份”——里面只有当前正在用的世界,没有历史版本,删错一次就没得退。

每个文件干什么、能不能删#

按重要性排:

文件/目录作用能删吗备份优先级
world/、world_nether/、world_the_end/全部游戏进度❌ 删了就没了最高
server.properties端口、MOTD、正版验证、视距等全部设置删了会重新生成默认值,设置全丢高
plugins/、mods/、config/功能与它们的配置删了功能消失,配置难重建高
ops.json、whitelist.json、banned-players.json名单数据删了名单清空中高
server.jar核心本体删了开不起来,可重新下载中(自建/导入的 jar 删了就没了)
eula.txt同意记录删了下次启动会被重新写入低
logs/运行日志可以删,但排错前别删低
crash-reports/崩溃报告可以删,但报障时先留着低
libraries/Forge / NeoForge 依赖库别删,删了核心起不来低(可重装)
.mineserve/tmp运行期临时文件应用自己管,不用动无

判断标准:删掉后服务端能自己重新生成的,可以删;需要重新配置或重新下载的,先备份;删掉数据就消失的,一律别碰。

有个细节值得单独记:世界的目录名不是固定的 world,它由 server.properties 里的 level-name 决定。如果你改过这一项,要备份的目录名也跟着变——别只认 world 三个字。

两个日志和一个崩溃目录#

出问题时,日志是唯一能告诉你“哪一步炸了”的东西。位置记住三个:

  • logs/latest.log:核心自己写的日志,最新一次启动全部在里面,排错第一选择。更早的会压缩归档成带日期的文件。

  • logs/mineserve-console.log:应用侧记录的控制台输出。核心还没开始写日志、或者启动阶段就退出时,这里往往有内容。

  • crash-reports/:Java 核心崩溃时生成的报告,带崩溃原因和堆栈。只有真崩了才出现。

应用自己的崩溃报告在私有目录的 crash-logs/ 里,不在服务端目录中,从「崩溃报告」页看即可。

在 Minexa 里看日志

不用翻文件:底部「终端」页就是控制台,崩了去「崩溃报告」页看结论。终端只显示最近 300 行,没有搜索和导出,要完整历史还是打开 logs/latest.log。

latest.log 可以用文件管理的文本编辑器打开(UTF-8,单文件上限 1 MiB,只认几种文本后缀)。看关键词的方法见 小白看日志:30 秒抓住关键错误。

绝对不能动的清单#

下面这些,别在服务端运行时删、改、覆盖:

这些操作会直接毁档
  • 运行中删或改核心文件(server.jar、libraries/):进程正在读,删了可能当场崩溃。

  • 运行中动 world/ 里的任何东西:世界正在被写,包括 level.dat(世界的元信息,含种子、时间和规则)和 session.lock(世界锁)。level.dat 损坏,世界基本等于报废;手动删 session.lock 可能让两个进程同时写同一个世界。

  • 运行中手改 ops.json / whitelist.json:服务端内存里有自己的一份,退出或保存时会覆盖你的修改。要改名单,用「玩家」页,或者先停服再改文件。

  • 用第三方文件管理器改整个目录的权限/属主:应用和核心都按自己的权限模型访问,改乱了会表现为“明明有文件却读不到”。

顺带提醒:文件管理页的删除和编辑不检查服务端是否在运行,服务器跑着也能一键删掉 world/。所以动手前先看一眼概览页的状态,这不是应用会替你拦的。

想腾空间,按这个顺序删#

手机空间吃紧时,删除顺序应该从“删了能重建”到“删了就没了”:

  1. 旧备份:/storage/emulated/0/世界与服务器的备份/ 里的历史 zip,留最近 1~2 份够用。

  2. logs/ 与 crash-reports/:先导出你要留着的那份日志,再清空。

  3. 不再玩的整服目录:确认里面有备份之后再删整个目录。

  4. libraries/:只在确认要重下核心时才动,删了下次启动会重新拉。

  5. world/:最后才考虑,而且必须先备份。

绝不要为了省空间去删应用私有目录里的运行环境(Termux 运行时、Java、PRoot rootfs),删了的结果是所有服务器一起启动失败,还得重新下载几十到几百 MB。

中文名、空格与跨设备拷贝#

中文和空格:显示名是中文时,实际目录名会被 ASCII 化并附加 6 位哈希后缀,两串字符对不上是正常的。所以:

  • 写路径、贴命令时,用真实目录名,不要用界面显示名;

  • 命令里路径带空格或中文时,两侧加引号。

跨设备拷贝最稳的顺序是:

  1. 先停服,等状态真的变成“未运行”;

  2. 在文件管理页选中整个服务器目录导出(自动打成 zip),或做一份整服备份;

  3. 新设备上装好应用、初始化运行环境、装同版本 Java;

  4. 用「导入服务器」选那个 zip 或文件夹导入,别手动一层层拷。

导入会顺手补齐 eula.txt、识别核心类型,手动拷容易漏文件。同版本、同类型的 Java 世界可以这样搬;Java 版和基岩版的世界格式完全不同,不能互相打开,也别把第三方转换工具当成备份方案。导入的细节见 导入服务器与整合包。

应用私有目录里还有什么#

除了公共的 Minexa/Minecraftserver/,应用还有一块私有目录,里面放的是运行环境,不是你的服务器:Termux 兼容运行时(首次约 50 MB)、Java / PHP 运行环境、PRoot 的两个 rootfs(focal / jammy)、旧的世界快照和应用的崩溃报告。

这些东西在文件管理页看不到,正常也不需要动。空间不够时应该删旧备份,而不是删运行时。

上机自查
  • 你能在文件管理页里找到 servers/,并进到自己的服务器目录,看到 server.jar(或 unix_args.txt)与 server.properties。

  • world/ 里能看到 level.dat,logs/ 里能看到 latest.log。

  • 你做过一次整服备份,知道它在 /storage/emulated/0/世界与服务器的备份/,而不是服务端目录里。

  • 你的服务器显示名是中文时,能说出真实文件夹名和显示名不一样,并核对过一次。

  • 改过配置或删过文件后,服务端仍然能正常启动到 Done。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表