☰
MojoLauncher实例系统入门指南:如何管理10+个Minecraft版本不混乱
2026/10/16 21:09:43 网站建设 项目流程

【免费下载链接】MojoLauncher

A Minecraft: Java Edition launcher, based on PojavLauncher

项目地址:https://gitcode.com/gh_mirrors/mo/MojoLauncher
点击查看免费下载

MojoLauncher 是一款运行在 Android 上的 Minecraft: Java Edition 启动器,其核心是实例(Instance)系统:每个实例是一个独立目录,拥有各自的版本号、世界存档、模组和 Java 运行时设置。本指南带你从零理解实例原理,学会创建、编辑和整理多个 Minecraft 版本,让手机上的 10+ 个版本井井有条。

先搞懂:什么是 MojoLauncher 实例?

早期启动器普遍使用"配置文件(Profile)"来区分版本,所有世界数据混在同一个游戏目录里,版本一多就容易互相污染。MojoLauncher 的 README.md 路线图中明确列出了Instance system in favor of profiles(用实例系统取代配置文件),并且已完成。

简单来说,一个实例就是一套"自包含的游戏环境":

组成说明
版本(versionId)该实例要运行的 Minecraft 版本,如1.12.2、latest_release
游戏目录存放世界存档、配置文件、mods 文件夹
图标(icon.webp)主界面上区分实例用的小图标
运行时设置Java 运行时(Runtime)、渲染器、JVM 参数、触控布局

实例的元数据由 Instance.java 定义,包含name、versionId、icon、renderer、jvmArgs、selectedRuntime、controlLayout、sharedData等字段,每个字段都可以按实例独立设置——这正是"多版本不混乱"的关键。

实例文件结构:你的数据存在哪里

所有实例统一存放在游戏主目录下的instances/文件夹中,由 Instances.java 统一管理:

游戏目录/ ├── instances/ │ ├── <UUID>/ ← 一个实例一个文件夹 │ │ ├── mojo_instance.json ← 实例元数据(名称、版本、设置) │ │ ├── icon.webp ← 实例图标 │ │ └── ...(世界、mods、配置) │ └── <UUID>/ └── shared_dir/ ← 共享游戏数据目录

几个值得注意的机制:

  • 目录名是 UUID:新建实例时会随机生成 UUID 作为文件夹名(见 findNewInstanceRoot),因此不同实例永不重名冲突,你起的自定义名字只用于显示。
  • 元数据即mojo_instance.json:启动器扫描instances/目录时,只认含有该文件的文件夹(见 filterInstanceDirectories),没有它的目录不会被识别为实例。
  • 首次启动自动建实例:第一次打开启动器时,会自动创建一个默认实例,版本为1.12.2并开启共享数据(见 createFirstTimeInstance),所以你不会面对一个空列表。

创建新实例:从原版到模组版

在主菜单点击"创建新实例"后,MojoLauncher 会引导你选择实例类型,入口逻辑在 ProfileTypeSelectFragment.java:

  1. 创建原版实例(Create vanilla instance)适用于纯净游玩。新建的默认实例会设置为latest_release(最新发布版)并开启共享数据(见 createDefaultInstance)。

  2. 创建模组加载器实例选择 Forge、NeoForge、Fabric、Quilt 或 OptiFine,界面会列出对应版本供选择。例如 Fabric 实例的创建代码在 FabriclikeInstallFragment.java;Forge/NeoForge 的.jar安装程序会由 InstanceInstaller.java 下载并执行,安装完成后再自动把实例版本指向对应游戏版本(见 postInstallCheck)。

  3. 导入模组包实例支持 mrpack / CurseForge zip 模组包导入,导入时会创建带模组包名前缀的实例(见 ModpackInstaller.java),方便日后识别。

编辑实例:版本、Java 运行时、渲染器一键切换

长按或进入实例编辑页(InstanceEditorFragment.java)后,你可以为单个实例覆盖以下全局设置,而不影响其他实例:

  • 实例名称与图标:点击图标可裁剪一张自定义图片,多版本管理时一眼可辨;
  • 游戏版本:通过版本选择对话框指定,也支持"最新发布 / 最新快照";
  • Java 运行时:MojoLauncher 支持多运行时(Multi-RT),老版本(如 1.12)需要 Java 8,新版本需要更高版本,可以为每个实例单独指定(见 multirt/);
  • 渲染器:例如 Holy GL4ES(全版本可用、速度快)或 Zink(Vulkan),选项来自 RendererCache;
  • JVM 参数:支持三种合并模式——完全替换、全局参数在前、实例参数在前(见 getLaunchArgs),适合给特定实例加内存参数;
  • 触控按键布局:可以为不同版本的游戏使用不同的虚拟按键方案。

如果某项留空,实例会自动回退到全局默认值,不必每个实例都填满。

让 10+ 版本井井有序的 3 个实用技巧

  1. 善用"共享数据"开关实例编辑器里有"Shared data"复选框(字符串定义见 strings.xml):

    • 开启后,世界存档统一存放在shared_dir/共享目录(见 getGameDirectory),不同版本/模组版的实例可以共用同一个世界;
    • 关闭后,世界和 mods 都锁在各自实例目录里,改模组合包也不会污染别的环境。 经验法则:同版本的纯净 + 模组版开共享;不同版本或实验性模组组合包关共享。
  2. 给实例起可读的名字并换图标底层目录名是 UUID,显示名才是你每天看的。建议用"版本 + 用途"命名,例如1.20.1-整合包、1.12.2-老服务器,再配上不同图标,主菜单立刻清晰。

  3. 果断删除无用实例编辑页的删除按钮会先弹出确认对话框:"这将永久删除实例目录中的整个世界、模组和资源,且无法撤销"(见 instance_delete_confirmation)。确认删除时,removeInstance 会移除整个实例目录——注意开启共享数据的实例只删配置与 mods,世界仍在共享目录中。

常见问题(FAQ)

Q:为什么我创建实例后列表里看不到?启动器只识别包含mojo_instance.json的目录,手动在文件管理器里建空文件夹是无效的,请通过启动器内界面创建。

Q:切换实例需要重新下载游戏吗?会复用已下载的版本文件,但不同版本之间的依赖库(libraries)会分别下载;实例只是"指向"版本并携带独立设置,并非把整个游戏复制一份。

Q:老版本(1.12 及更早)能跑吗?可以。MojoLauncher 支持从 rd-132211 到最新快照的几乎所有版本,老版本通过为实例指定对应的 Java 运行时(Multi-RT 功能)解决兼容性问题。

小结

MojoLauncher 的实例系统把"一个版本 + 一套设置 + 一块独立数据区"打包成最小管理单元:创建实例隔离环境、编辑实例定制版本与运行时、共享数据开关决定世界是否互通。掌握这套组合拳,你在手机上同时运行 10 个以上 Minecraft 版本也毫不混乱。

  • 实例核心逻辑:instances/
  • 实例编辑界面:InstanceEditorFragment.java
  • 多运行时管理:multirt/
  • 项目说明与路线图:README.md

【免费下载链接】MojoLauncher

A Minecraft: Java Edition launcher, based on PojavLauncher

项目地址:https://gitcode.com/gh_mirrors/mo/MojoLauncher
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询