启动器配置与 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 声明不支持

相关条目