你在概览点了「启动」,终端停在一行红字上:核心需要 Java 运行环境。你装了 Java 21,重试,这次报的是「当前来源不提供 Java 8」。或者你听说 PRoot 容器最稳,装完发现里面根本没有 Java 25。
这些都不是 bug,而是「来源」这个概念在起作用。Minexa 的 Java 不是一张平铺的版本列表,而是三个来源,每个来源各有自己能装的版本。这一页把这张表讲清,也讲清装完还要在哪一步选对它。
入口是概览页右上角的「依赖与环境管理」图标,进去有 Java 版本、依赖、Termux、PHP 四栏;选中 BDS 核心时还会多一栏 BDS。
三个 Java 来源可装版本不同:Termux 是 11/17/21/25,Pojav 是 17/21/25,PRoot 是 focal 8/11/17、jammy 11/17/21。
Java 8 只有 PRoot 的 focal 提供,Termux 和 Pojav 都没有。
装完不等于生效,还要在概览「启动服务端」卡右上角齿轮里选对运行环境和版本。
自动匹配只升版本、不换来源;来源不提供就直接报错,让你自己换。
入口在哪:概览右上角,四栏(BDS 核心多一栏)#
从概览页右上角那个「管理依赖与环境」的图标进去,标题是「依赖与环境管理」。另外还有两个能直接跳进来的位置:崩溃弹窗里的「前往安装」会落到「Java 版本」Tab;网络页 EasyTier 提示引擎未下载时,点「去下载」会落到「依赖」Tab。
进去是四个分段,不是三个:
| Tab | 管什么 | 什么时候来 |
|---|---|---|
| Java 版本 | 三种来源的 Java 安装与卸载 | 启动报缺少 Java、版本不对 |
| 依赖 | wget、字体、rclone、proot、frpc 与 EasyTier 引擎 | 穿透、组网、诊断提示缺命令 |
| Termux | 兼容运行环境的初始化与重装 | 首次使用、环境损坏 |
| PHP | PocketMine 用的 PHP 8.2 | 开基岩版 PocketMine 服 |
铁律只有一条:服务器运行中,Java 与 Termux 的所有改动都被禁用。Java 页的红字是「服务器运行中,停止后才能改动 Java 运行环境」,Termux 页写「服务器运行中,请先停止再操作」。想在开服状态下换 Java 是不行的。
三种来源,11 个版本行#
Java Tab 里是三段:Termux JDK、Pojav JRE、PRoot 容器,默认全部折叠。折叠不是为了藏功能,而是因为全展开后 11 条版本行会把下面「卸载 / 重装 / 安装」三个键顶出屏幕。折叠状态下标题行会显示「已选 Java X」,一眼能看出当前选的是哪个。
| 来源 | 能装的版本 | 它是什么 | 一句提醒 |
|---|---|---|---|
| Termux JDK | 11 / 17 / 21 / 25 | 在 Termux 兼容环境里用 apt 装 openjdk,直接跑在手机系统上 | 没有 Java 8 |
| Pojav JRE(FCL) | 17 / 21 / 25 | PojavLauncher 构建的 Android 原生 JRE,应用内下载,17 约 37 MB、21 约 45 MB、25 约 62 MB | 自带 IPv6 支持,不依赖 Termux |
| PRoot 容器 | focal:8 / 11 / 17;jammy:11 / 17 / 21 | 标准 glibc 的 Ubuntu 容器,下载 rootfs 后用 apt 装 JDK | 容器里没有 Java 25;不提供真实 Root |
11 行来自 4 + 3 + 4 的并集,但单个发行版只有三行。
两者都是「C 运行库」,可以理解成程序跑起来要用的基础零件箱。Android 自带的是 bionic,Ubuntu 用 glibc。少数服务端或原生库只认 glibc,这就是它们必须在容器里跑的原因。
Java 8 为什么只在 PRoot,25 为什么进不了容器#
这两个问题背后是同一条规则:来源决定版本范围,版本范围是写死的,不会互相借用。
Termux 来源刻意不含 Java 8,8 被归到 PRoot 分组;
Pojav 上游只发布 17、21、25 三个构建,没有 8 也没有 11;
PRoot 的并集是 8 / 11 / 17 / 21,两个发行版都没有 25。
于是实际后果很具体:
要跑 1.16 及更老的服务端(应用会把这类版本匹配到 Java 8),尤其 Forge ≤ 1.16 → 唯一的路是 PRoot + focal + Java 8;
要跑 1.21 及更新的服,需要 Java 21 或 25 → Termux 或 Pojav 都行;但如果你偏要用容器,最高只能到 21;
老配置里的「Termux + Java 8」仍然能用,读取时会被归一成「PRoot + Java 8」,界面显示成 PRoot。
启动前应用会按游戏版本推荐 Java:26 及以上 → 25;1.21+ → 21;1.17~1.20.6 → 17;1.16 及更老 → 8。但它只在当前来源提供该版本时才切。来源不提供就直接报错,让你换版本或换发行版,它不会替你换来源——因为换来源等于换掉整条运行链路。
PRoot:先选发行版,再选版本#
展开 PRoot 分组后,顺序会变:版本行上方先出现「Ubuntu 20.04 (focal)」和「Ubuntu 22.04 (jammy)」两个胶囊,然后才是版本。这个顺序是刻意的,因为发行版决定了哪些版本可用。先选发行版,再选版本,别反过来。
默认发行版是 jammy;
当前发行版不提供的版本仍然会列出来,但是置灰,状态写「该容器不提供」。看到灰色的 Java 8 不要以为装不上是网络问题,切到 focal 就会亮;
切换发行版时会同时写发行版和版本,避免出现「jammy + Java 8」这种装不上的组合;
切发行版不会删除已安装的其他 Java 版本,rootfs 是复用的,不需要重新下载整个容器。
两个发行版的差别只有一张小表,但对老版本服很关键:
| 发行版 | 提供 | 适合 |
|---|---|---|
| Ubuntu 20.04(focal) | Java 8 / 11 / 17 | 1.16 及更老、Forge ≤ 1.16、任何需要 Java 8 的场景 |
| Ubuntu 22.04(jammy) | Java 11 / 17 / 21 | 1.17 及以上,想要更新一点的 glibc |
顺带说清一件常被误解的事:PRoot 不提供真实 Root。它是用户态兼容层,不是提权。服务端目录在容器里以 /srv/mineserve 出现,你在应用里看到的还是同一个目录,不是两份数据。
安装、重装、卸载:三个键和一个「删容器」#
一行三个等宽按钮:卸载、重装、安装。它们作用于当前选中的「来源 + 版本」,不是全部 Java。想换管理对象,点版本行即可,页面提示写着「点按版本行可切换管理对象,操作作用于所选版本」。
按键的可用状态很好判断:已装的版本,卸载和重装可点;未装的只有安装可点;运行中全部禁用。
几个必须知道的行为:
确认弹窗的标题固定是「确认卸载」,确认键固定是「卸载」,重装和删除容器也复用这套文案。看到「确认卸载」不一定是真的要卸载,先看正文;
卸载只影响所选这一个版本:其他来源、其他 Java 版本都会保留,存档不受影响。卸载 Java 17 不会顺手清掉 Java 21;
重装会先卸载当前所选这一份,再重新下载安装;其他版本保留;
删除容器是 PRoot 专属的独立一行,只在所选来源是 PRoot 时出现。它删的是整个 focal 或 jammy 容器,含容器内已安装的全部 Java 版本,回收的容量是 300–600 MB 量级;存档不在容器里,但重装容器要重新跑一遍 apt。
安装时按钮上方会出现转圈和文案「正在安装 …,首次下载可能需要数分钟」,后面跟百分比。Termux 源和 PRoot 源要走 apt,速度受软件源影响;Pojav 源是直接下载压缩包,还要做长度与 SHA-256 校验,校验不过直接判失败,不会降级使用。
装完还要在启动设置里选对#
装好 Java 只是准备了一半。真正决定服务端用哪个 Java 的,是概览页「启动服务端」卡右上角齿轮打开的启动设置抽屉。
「运行环境」下拉四项:
Termux Java、Pojav JRE、PRoot Linux 容器、PHP;只有选 PRoot 时才会出现「Linux 发行版」下拉,而且排在版本之前;
版本下拉按环境互不混用,PRoot 只列当前发行版确实提供的版本;
抽屉副标题写明:改动只影响下一次启动,不会打断正在运行的服务端。所以改完必须重启才生效,运行中这些下拉全部置灰;
安装成功后会自动把刚装的那个版本设为当前选用。
选错会被拦下来,而不是偷偷帮你改:
运行模式和核心不匹配(PocketMine 要 PHP,其他要 Java)会提示「核心 X 需要 Y 运行环境」,让你去「运行环境」里切换后重试;
所选 Java 低于日志要求时会提示「当前选择 Java …,但日志要求至少 Java …」;
Allay 强制 Java 21 及以上;PowerNukkitX 在选 8 或 17 时,概览页会出现红字建议改用 Java 25。
依赖、Termux、PHP、BDS:另外四栏#
依赖#
依赖 Tab 的卡片说明写「wget / frp / rclone / proot(服务器与穿透所需)」,但实际安装的包是 wget、fontconfig、ttf-dejavu、rclone、proot——frp 不在依赖清单里,它是下面单独的引擎子模块。
安装过程按步骤显示,每步带序号和「已完成 / 进行中 / 待安装」:Wget 下载工具、Rclone 远程挂载、Proot 兼容层(JDK 步骤会被过滤掉)。卸载只删这几组可执行文件,不会清字体。
卡片下面还有两个引擎子模块,都不随 APK 内置,必须联网下载或手动导入:
frpc:FRP 内网穿透用的引擎。显示状态、版本、体积、SHA-256 前 16 位,可以「下载/重装」、从文件管理器「导入/替换」、卸载,或点「打开发行页」自己去找;
EasyTier:组网引擎,界面同构,原生库有 16 MB 左右,所以不内置。
装依赖走的是 apt,和正在跑的服务端共用同一个 rootfs。给系统装包有可能直接把 MC 进程杀掉。所以应用在运行中会拒绝这个操作——这不是限制你,是在保护存档。
Termux#
这一页管的是那层约 50 MB 的兼容运行环境,也就是服务端真正跑起来的地方。状态只有两种:「运行环境已就绪」和「未初始化」。初始化时进度条显示百分比和下载速度,失败会给一句「初始化失败:原因」。三个键的含义和 Java 页不一样:
安装:重试初始化(已经失败过时用它);
重装:把现有环境删掉,然后自动重新初始化;
卸载:彻底删除,而且不会自动重装。
PHP#
PHP Tab 只提供 PHP 8.2,因为 PocketMine-MP 5 对 PHP 版本有硬性要求,上游只发这一个构建。体积约 10 MB,是 Android 原生 aarch64 构建,已经包含 PMMP 需要的扩展。它不依赖 Java,而且多个 PocketMine 服务器共享同一份,装一次就够。
这里有个容易误会的按钮:重装按钮的文案被换成了「删除(下次启动自动重装)」,点下去执行的其实就是删除。没装 PHP 时直接启动 PocketMine,应用也会自动下载。基岩版核心怎么选见 基岩版核心。
BDS(1.4.1 起)#
这一栏只管官方基岩版(BDS)的运行环境,和 Java 毫无关系:它不装 JDK,也不出现在「运行环境」的 Java 版本列表里。界面在依赖管理里单独占一栏,叫「BDS」。
| 关注点 | 规则 |
|---|---|
| 何时初始化 | 只能手动点「初始化环境」。点启动不会临时装,启动入口只做就绪检查 |
| 装了什么 | PRoot Ubuntu 容器(约 32MB 下载)+ box64(随 APK 内置)+ x86_64 运行库 |
| 进度 | 三个阶段首尾相接:容器 0–60% → box64 60–92% → 实测 92–100% |
| 失败 | 按类型给原因(空间不足 / 下载 / 包损坏 / 解压 / 实测),可原地重试或移除重装 |
| 体检 | 「环境体检」实测 DNS、TCP、TLS、CA 证书,能直接看出卡在哪一层 |
| 移除 | 只删 box64 与就绪标记,保留容器(Java 版 PRoot 还在用) |
初始化期间控制台会持续写 [bds] … 日志(阶段切换、每 10% 进度、每次换源),卡住时先看最后一行停在哪一段。1.5.0 的环境代次升到 gen=2,从更早版本升上来的会被提示重新初始化——容器和 box64 都还在,只是缺历史版本所需的 x86_64 兼容库,点一次即可。完整步骤见 官方基岩版(BDS)开服。
装不上、卡在进度条怎么办#
大部分安装失败都能用这张表定位,不用重装应用:
| 现象 | 先查什么 | 怎么处理 |
|---|---|---|
| 安装进度长时间不动 | 下载源与网络 | 设置页换下载源;apt 相关失败换清华 / 中科大源后重装 |
| 提示「发行版不提供 Java X」 | 当前 PRoot 发行版 | 切 focal / jammy,或改选这个发行版支持的版本 |
| 提示来源不提供某版本 | 来源与版本的组合 | 换版本,或手动换来源(应用不会替你做) |
| 启动仍报 Java 版本不对 | 启动设置抽屉里的运行环境与版本 | 停服 → 重选 → 重启,改动下一次启动才生效 |
| 命令找不到、rootfs 疑似损坏 | 更多 → 运行诊断 | proot rootfs、commands、fonts 这几类可以一键修复 |
| Pojav 版本下载完就失败 | 校验环节 | 长度或 SHA-256 不符会直接判失败,换网络重试,不会用坏包 |
修复有先后顺序,别乱点:先修 Termux 环境,再装依赖,再装 Java,最后才动 PRoot 容器。容器出问题优先删容器重装,而不是删 Java 版本——容器没了,里面所有版本反正都要重来。
装完 Java 却启动不起来,先看 启动失败排查;想知道内存该给多少,看 内存分配。
概览右上角能打开「依赖与环境管理」,Java / 依赖 / Termux / PHP 四栏都在,Java 栏显示「已选 Java X」。
你要用的 Java 版本在所选来源里不是灰色的,安装按钮可点。
装完后状态变成已安装,启动设置抽屉里同名的版本被自动选中。
停服后改了运行环境或版本,重启一次并看到终端出现
Done。报「该容器不提供」时,你确认过当前 PRoot 发行版是 focal 还是 jammy。
下一步#
不确定某个游戏版本该配哪个 Java:游戏版本与 Java 版本怎么对应
装好了但启动卡住:启动失败:卡住、闪退、迟迟不出 Done
回头确认启动卡上的运行环境怎么选:概览与启动