启动器配置与 forgePatches
基本信息
| 属性 | 值 |
|---|---|
| 配置目录 | prism-libraries/ |
| 组件清单 | prism-libraries/mmc-pack.json |
| 组件数量 | 5 |
| 服务器 java9args 文件 | java9args.txt(72 行) |
| 服务器启动器 jar | me.eigenraven.lwjgl3ify:...:forgePatches |
| 服务器 Main-Class | me.eigenraven.lwjgl3ify.rfb.entry.ServerMain |
LWJGL3ify 的内容不只装在 jar 里:要真正运行,它还必须替换启动器的组件定义。仓库自带的 PrismLauncher / MultiMC 组件清单是这一步的权威来源。
功能
组件清单 mmc-pack.json
prism-libraries/mmc-pack.json 声明 5 个组件(全部含 ${lwjglVersion} / ${version} 占位符,由 build.gradle.kts:245 的 it.replace("\${lwjglVersion}", lwjglVersion) 一类替换填入真实值):
| uid | 名称 | 版本 | 备注 |
|---|---|---|---|
org.lwjgl3 |
LWJGL 3 | ${lwjglVersion} |
dependencyOnly: true,与 org.lwjgl 冲突(org.lwjgl3.json 的 conflicts) |
net.minecraft |
Minecraft with LWJGL3 | 1.7.10 |
important: true,cachedRequires 建议 org.lwjgl3 |
me.eigenraven.lwjgl3ify.forgepatches |
LWJGL3ify Early Classpath | ${version} |
order: 3 |
net.minecraftforge |
Forge-LWJGL3 | 10.13.4.1614 |
cachedRequires 等于 net.minecraft = 1.7.10 |
me.eigenraven.lwjgl3ify.launchargs |
LWJGL3ify launch args | ${version} |
— |
${lwjglVersion} 的真实值来自版本目录 gradle/libs.versions.toml:5 的 lwjgl = "3.4.2";${version} 来自 project.version。
net.minecraft 组件改造
prism-libraries/patches/net.minecraft.json 声明 compatibleJavaMajors: [17, 21, 25, 26]、compatibleJavaName: "java-runtime-epsilon",并在 minecraftArguments 中追加额外参数。org.lwjgl3.json 自身 order: -1,且其 libraries 数组由构建期生成的 lwjgl3 下载清单(${new File(lwjglDownloadsFile).getText('UTF-8')})整体注入。
forgePatches 组件
prism-libraries/patches/me.eigenraven.lwjgl3ify.forgepatches.json 引入库 com.github.GTNewHorizons:lwjgl3ify:${version}:forgePatches(MMC-hint: local,指向构建产物而非远程仓库),并以 ${jvmArgs} 占位符注入 JVM 参数数组。
forgePatches jar 由构建脚本产出:build.gradle.kts:195 把 Main-Class 设为 me.eigenraven.lwjgl3ify.rfb.entry.ServerMain,:162 将 me/eigenraven/lwjgl3ify/rfb/entry/ServerMain.class 纳入打包,:167-169 写入 META-INF/lwjgl3ify-forgePatches-version.txt 版本戳。
JVM 参数
me.eigenraven.lwjgl3ify.launchargs.json 含 mainClass 与 +traits 字段,+traits 携带实际 JVM 参数。仓库内可直接读到参数全文的是:
java9args.txt(72 行)—— 服务端用java @java9args.txt -jar lwjgl3ify-forgePatches.jar nogui启动README.MD客户端章节的长参数串——核心为-Djava.system.class.loader=com.gtnewhorizons.retrofuturabootstrap.RfbSystemClassLoader、--enable-native-access ALL-UNNAMED和大量--add-opens(覆盖java.base的java.lang、java.nio、java.util.zip等,以及java.desktop、jdk.naming.dns)
这些 --add-opens 是 LWJGL3ify 能工作的前提:README 明确说明大量库与 mod 依赖它们反射 JVM 内部。
服务端安装约定
README 服务端章节要求:把 forgePatches jar 放在 forge-universal 与 minecraft server jar 旁并重命名为 lwjgl3ify-forgePatches.jar,创建内容等同于 java9args.txt 的文件,然后以现代 Java 启动。README 同时声明 Thermos/Crucible/Hybrid 服务端不受支持。
数值
| 数值 | 值 | 来源 |
|---|---|---|
| mmc-pack 组件数 | 5 | prism-libraries/mmc-pack.json |
org.lwjgl3 组件 order |
-1 |
prism-libraries/patches/org.lwjgl3.json |
forgepatches 组件 order |
3 |
prism-libraries/patches/me.eigenraven.lwjgl3ify.forgepatches.json |
net.minecraft 兼容 Java 主版本 |
17 / 21 / 25 / 26 | prism-libraries/patches/net.minecraft.json |
java9args.txt 行数 |
72 | 仓库根目录 |
| forgePatches Main-Class | me.eigenraven.lwjgl3ify.rfb.entry.ServerMain |
build.gradle.kts:195 |
| LWJGL3 版本(占位符真实值) | 3.4.2 |
gradle/libs.versions.toml:5 |
交互
| 触发 | 行为 |
|---|---|
| 客户端首次安装 | 把 lwjgl3ify-VERSION-multimc.zip 解到实例目录,覆盖 mmc-pack.json;mod jar 放入 mods/ |
| 服务端启动 | java -Xmx6G -Xms6G @java9args.txt -jar lwjgl3ify-forgePatches.jar nogui |
| 使用 Thermos/Crucible/Hybrid 服务端 | README 声明不支持 |
相关条目
- RetroFuturaBootstrap 加载插件 - 被这些启动器参数引导的加载期插件
- FML 加载插件 - 启动器参数最终交棒给的对象