如何通过命令行启动Minecraft Forge 1.8.9版本
Minecraft Forge 1.8.9 命令行启动可行方案
核心故障原因
1.8.9、1.12这类低版本Forge的启动逻辑和1.13+高版本完全不同,minecraft_launcher_lib默认生成的启动命令缺关键配置,加上环境不匹配就会启动失败:
- 低版本Forge依赖
FMLTweaker作为启动入口类,该库对部分旧版Forge的version.json解析不全,不会自动带入这个参数 - 1.8.9 Forge仅支持Java 8运行,用高版本Java会直接触发类加载错误崩溃
- 手动写版本名很容易和本地实际安装的版本目录名不匹配,导致找不到版本配置
可直接运行的修正代码
import minecraft_launcher_lib import subprocess # 替换成本地Java 8的javaw.exe实际路径,禁止使用Java9及以上版本 JAVA_8_PATH = "C:\\Program Files\\Java\\jre1.8.0_351\\bin\\javaw.exe" # 版本名必须和.minecraft/versions下的Forge文件夹名完全一致 FORGE_VERSION = "1.8.9-forge1.8.9-11.15.1.2318" MC_DIR = "C:\\Users\\*****\\AppData\\Roaming\\.minecraft" launch_options = { "username": "rohwn", "uuid": "5a848c091a5f476ab94b4d09af4613cc", "token": "离线模式可任意填写字符串,正版启动填入账号accessToken即可", "executablePath": JAVA_8_PATH, "jvmArguments": [ "-Dfml.ignorePatchDiscrepancies=true", "-Dfml.ignoreInvalidMinecraftCertificates=true" ], # 1.8.9 Forge必须指定的启动入口 "tweakClass": "net.minecraftforge.fml.common.launcher.FMLTweaker" } # 自动补全缺失的版本依赖、库文件,不会覆盖已有文件 minecraft_launcher_lib.install.install_minecraft_version(FORGE_VERSION, MC_DIR) mc_cmd = minecraft_launcher_lib.command.get_minecraft_command(FORGE_VERSION, MC_DIR, launch_options) subprocess.call(mc_cmd)
启动前必查的注意事项
- 打开
.minecraft/versions目录,确认Forge版本的文件夹名和代码里FORGE_VERSION的值完全一致,多一个少一个横杠都会导致找不到版本 - 必须使用Java 8,32位/64位对应系统版本即可,Java 9及以上版本100%无法启动1.8.9 Forge
- 如果启动时报类找不到错误,先重新跑一次
install_minecraft_version流程,旧版Forge安装时经常漏下依赖库 - 离线模式下
uuid和token不需要和正版绑定,随便填符合格式的字符串就能进单机/离线服务器
官方启动器参数抓取工具实现
不需要开发专门的exe程序,写个批处理脚本就能实现参数记录+正常启动游戏的需求:
将以下代码保存为
java_wrapper.bat,在官方启动器的Java可执行文件配置项里选中这个bat文件即可:@echo off :: 把所有启动参数写入同目录下的launch_log.txt echo %* > "%~dp0launch_log.txt" :: 替换成你本地Java 8的javaw.exe路径 start "" "C:\\Program Files\\Java\\jre1.8.0_351\\bin\\javaw.exe" %* exit启动一次游戏后,同目录下生成的
launch_log.txt里就是官方启动器生成的完整启动命令,可以直接复制出来调试。
公开渠道流传的旧版手动拼启动命令的方案大多适配1.7及更早版本,1.8.9 Forge需要加载上百个依赖库文件,手动拼classpath极容易漏项,用上面修正后的minecraft_launcher_lib方案是稳定性最高的实现。
内容的提问来源于stack exchange,提问作者Joe Jameson
相关产品推荐
相关产品推荐

