Minexa说明书
进阶APP 使用说明

运行环境与依赖管理(Java / PHP / PRoot)

四种运行环境、三种 Java 来源、11 个版本行;Java 8 为什么只在 PRoot,容器又为什么没有 Java 25。

你在概览点了「启动」,终端停在一行红字上:核心需要 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兼容运行环境的初始化与重装首次使用、环境损坏
PHPPocketMine 用的 PHP 8.2开基岩版 PocketMine 服

铁律只有一条:服务器运行中,Java 与 Termux 的所有改动都被禁用。Java 页的红字是「服务器运行中,停止后才能改动 Java 运行环境」,Termux 页写「服务器运行中,请先停止再操作」。想在开服状态下换 Java 是不行的。

三种来源,11 个版本行#

Java Tab 里是三段:Termux JDK、Pojav JRE、PRoot 容器,默认全部折叠。折叠不是为了藏功能,而是因为全展开后 11 条版本行会把下面「卸载 / 重装 / 安装」三个键顶出屏幕。折叠状态下标题行会显示「已选 Java X」,一眼能看出当前选的是哪个。

来源能装的版本它是什么一句提醒
Termux JDK11 / 17 / 21 / 25在 Termux 兼容环境里用 apt 装 openjdk,直接跑在手机系统上没有 Java 8
Pojav JRE(FCL)17 / 21 / 25PojavLauncher 构建的 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 的并集,但单个发行版只有三行。

glibc 和 bionic 是什么

两者都是「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 / 171.16 及更老、Forge ≤ 1.16、任何需要 Java 8 的场景
Ubuntu 22.04(jammy)Java 11 / 17 / 211.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。

下一步#

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

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