你想改端口,教程说“打开 server.properties”;你想备份,教程说“拷走 world”。你顺手删了两个看着没用的文件,然后服务器起不来了。
服务端目录里确实有一半是可以随便删的临时文件,另一半删了就报废。区别不在名字好不好认,而在它是不是服务端运行时必须读的东西——以及有没有一份副本在别处。
下面把真实路径、每个文件的作用、哪些绝对不能动,一次说清,最后再给一条“想腾空间该按什么顺序删”的路线。
服务端唯一根目录在公共存储的 Minexa/Minecraftserver 下,界面显示名可能和真实文件夹名不同。
值钱的只有四样:world 三个目录和 server.properties,再加上插件配置与名单文件。
logs/、crash-reports/可以删,但排错前先留着;libraries/删了核心起不来。备份不在服务端目录里,在 /storage/emulated/0/世界与服务器的备份/。
运行中不要删、改或覆盖 world 和 jar,这是最容易毁档的操作。
先记住真实路径#
所有服务端都在同一个根目录下,一个服一个子目录:
/storage/emulated/0/Minexa/Minecraftserver/<目录名>/关于这个路径,有四个容易搞错的地方:
文件管理页里的根目录显示为
servers/,它对应的就是这个Minecraftserver目录,不是另一份拷贝。下载页卡片底部那句“下载路径:home/servers/…”是旧文案,已经过时。 写路径、贴命令时别照着它抄。
旧版本的私有目录只作迁移来源,不参与运行,冷启动时会问你要不要迁移。
中文服务器名落盘时会被转成 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)开服。
备份不在服务端目录里。当前备份统一放在公共存储的 /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/ 里,不在服务端目录中,从「崩溃报告」页看即可。
不用翻文件:底部「终端」页就是控制台,崩了去「崩溃报告」页看结论。终端只显示最近 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/。所以动手前先看一眼概览页的状态,这不是应用会替你拦的。
想腾空间,按这个顺序删#
手机空间吃紧时,删除顺序应该从“删了能重建”到“删了就没了”:
旧备份:
/storage/emulated/0/世界与服务器的备份/里的历史 zip,留最近 1~2 份够用。logs/与crash-reports/:先导出你要留着的那份日志,再清空。不再玩的整服目录:确认里面有备份之后再删整个目录。
libraries/:只在确认要重下核心时才动,删了下次启动会重新拉。world/:最后才考虑,而且必须先备份。
绝不要为了省空间去删应用私有目录里的运行环境(Termux 运行时、Java、PRoot rootfs),删了的结果是所有服务器一起启动失败,还得重新下载几十到几百 MB。
中文名、空格与跨设备拷贝#
中文和空格:显示名是中文时,实际目录名会被 ASCII 化并附加 6 位哈希后缀,两串字符对不上是正常的。所以:
写路径、贴命令时,用真实目录名,不要用界面显示名;
命令里路径带空格或中文时,两侧加引号。
跨设备拷贝最稳的顺序是:
先停服,等状态真的变成“未运行”;
在文件管理页选中整个服务器目录导出(自动打成 zip),或做一份整服备份;
新设备上装好应用、初始化运行环境、装同版本 Java;
用「导入服务器」选那个 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。
下一步#
想用界面改配置而不是手动编辑:服务器配置页:server.properties 与 pnx.yml
想搞清文件管理页能做什么、不能做什么:文件管理页(含 FTP 入口)
想定一套备份规则:备份策略与恢复演练