Hex-Dragon / PCL2

Plain Craft Launcher(我的世界启动器 PCL)的源代码,为支持社区研究而公开。
https://afdian.com/a/LTCat
Other
2.47k stars 183 forks source link

1.20.3+ 使用低版本 JRE 8 无法安装 Forge #3211

Closed vcvcOTZ closed 7 months ago

vcvcOTZ commented 8 months ago

检查项

描述

1.20.4与1.20.3使用自动安装安装forge时报错,其余版本我试下来基本都可以安装 下载源选择官方源 表现为先卡在→ 安装 Mod 加载器(方式 A)60% 后重新读条卡在38% 然后就会报错失败

image image image

重现步骤

1、自动安装选中1.20.4或1.20.3 forge选中最新版本 2、点击开始安装

日志与附件

Log1.txt

vcvcOTZ commented 8 months ago

这是个人网络原因,和启动器没有关系

我在下载时已经使用了vpn 且为何仅有这两个版本不能安装?

allMagicNB commented 8 months ago

成功复现,但是还暂时不确定为PCL的问题

allMagicNB commented 8 months ago

HMCL未出现此Bug

LTCatt commented 8 months ago

image 无法复现,可能真的是网络原因?

allMagicNB commented 8 months ago

或许我一开始的猜想就是对的……

vcvcOTZ commented 8 months ago

尝试用朋友的电脑安装 确实无法复现 是否是因为我电脑java环境的问题?

allMagicNB commented 8 months ago

可能会是吧……这是个.jar的Forge安装包……

allMagicNB commented 8 months ago

只有两种可能 ⒈Java问题:执行.jar安装包时Java出错 ⒉网络问题:下载到的.jar文件不完整

allMagicNB commented 8 months ago

测试出来了,更换使用的Java后成功下载

allMagicNB commented 8 months ago

总觉得应该改进下自动选择……

LTCatt commented 8 months ago

umm 需要测试一下哪些 Java 会安装不了……

allMagicNB commented 8 months ago

umm 需要测试一下哪些 Java 会安装不了……

我电脑九个Java,要我来吗(@LTCatt

allMagicNB commented 8 months ago

(发在这个回复里然后编辑,失败为粗体) JRE8(8.0.51),64位,微软原生启动器自动安装 JRE8(8.0.401),64位,Java官网下载页面下载安装 JRE8(8.0.401),64位,JDK安装目录中带的JRE JDK8(8.0.401),64位,Oracle官网下载安装 JDK16(16.0.1),64位,微软原生启动器自动安装 JDK17(17.0.10),64位,Oracle官网Java下载页面下载安装 JDK17(17.0.10),64位,微软的OpenJDK项目(HMCL在没有Java时会推荐安装这个) JDK17(17.0.8),64位,微软原生启动器自动安装 JDK21(21.0.2),64位,Oracle官网Java下载页面下载安装

就微软原生启动器自己安装的JRE8无法运行Forge安装包……

allMagicNB commented 8 months ago

从Author的日志来看,也是自动选择使用JRE8(8.0.51),偏偏就是这个版本及之前的Update安装不了1.20.4及1.20.3的Forge。选择其他Java安装都能安装成功

LTCatt commented 8 months ago

会不会是 JRE 8 中版本比较低的安不了?

allMagicNB commented 8 months ago

会不会是 JRE 8 中版本比较低的安不了?

我找找历史版本试试……?

allMagicNB commented 8 months ago

Java历史版本安装包下载

SALTWOOD commented 8 months ago

复现成功,表现为Java Runtime Environment 8 Update 51 安装 1.20.3_Forge-49.0.2 时 出错

下载 Forge 49.0.2失败 → 安装 Mod 加载器(方式 A)失败 → 安装新 Forge 版本失败 → 运行 Forge 安装器失败 → Forge 安装器出错,日志结束部分为: Processor failed, invalid outputs: C:\Users\SALTWOOD\AppData\Local\Temp\PCL\Install\1322651306\libraries\net\minecraft\client\1.20.3-20231205.124940\client-1.20.3-20231205.124940-srg.jar Expected: 9802dcc5ca3e0160fb1c03fdbd8070e05d7b9e6b Actual: ce4ab2a9b4693a95b98426be7f1d51dce0b921bc false 在 PCL.ModDownloadLib._Closure$37-0._Lambda$__7(LoaderTask2 Task) 在 PCL.ModLoader.LoaderTask2._Closure$13-0._Lambda$0() 在 PCL.ModDownloadLib._Closure$__37-0._Lambda$7(LoaderTask2 Task) 在 PCL.ModDownloadLib.ForgeInjector(String Target, LoaderTask2 Task, String McFolder, Boolean UseJavaWrapper) 在 PCL.ModDownloadLib._Closure$__37-0._Lambda$__7(LoaderTask`2 Task)

Log1.txt

allMagicNB commented 8 months ago

复现成功,表现为Java Runtime Environment 8 Update 51 安装 1.20.3_Forge-49.0.2 时 出错

下载 Forge 49.0.2失败 → 安装 Mod 加载器(方式 A)失败 → 安装新 Forge 版本失败 → 运行 Forge 安装器失败 → Forge 安装器出错,日志结束部分为: Processor failed, invalid outputs: C:\Users\SALTWOOD\AppData\Local\Temp\PCL\Install\1322651306\libraries\net\minecraft\client\1.20.3-20231205.124940\client-1.20.3-20231205.124940-srg.jar Expected: 9802dcc5ca3e0160fb1c03fdbd8070e05d7b9e6b Actual: ce4ab2a9b4693a95b98426be7f1d51dce0b921bc false 在 PCL.ModDownloadLib._Closure$37-0._Lambda$__7(LoaderTask2 Task) 在 PCL.ModLoader.LoaderTask2._Closure$13-0._Lambda$0() 在 PCL.ModDownloadLib._Closure$__37-0._Lambda$7(LoaderTask2 Task) 在 PCL.ModDownloadLib.ForgeInjector(String Target, LoaderTask2 Task, String McFolder, Boolean UseJavaWrapper) 在 PCL.ModDownloadLib._Closure$__37-0._Lambda$__7(LoaderTask`2 Task)

Log1.txt

不用复现了,现在确定问题了在测试(

allMagicNB commented 8 months ago

1.20.4已测试JRE8: 8u202,安装成功 8u60,安装成功 8u51,安装失败 8u45,安装失败 8u40,安装失败

1.20.3已测试JRE8: 8u60,安装成功 8u51,安装失败 8u45,安装失败 8u40,安装失败

1.20.2最新版使用JRE8u40却不会炸……

allMagicNB commented 8 months ago

总结:Forge安装器从49.0.1开始不支持JRE8u51及以下的JRE8 @LTCatt

zkitefly commented 8 months ago

总结:Forge安装器从49.0.1开始不支持JRE8u51及以下的JRE8 @LTCatt

好奇相同条件下其他启动器可否安装成功

allMagicNB commented 8 months ago

总结:Forge安装器从49.0.1开始不支持JRE8u51及以下的JRE8 @LTCatt

好奇相同条件下其他启动器可否安装成功

反正HMCL的自动选择没啥问题,我试试

hejiehao commented 8 months ago

总结:Forge安装器从49.0.1开始不支持JRE8u51及以下的JRE8 @LTCatt

好奇相同条件下其他启动器可否安装成功

反正HMCL的自动选择没啥问题,我试试

逝逝 ForgeWrapper

allMagicNB commented 8 months ago

总结:Forge安装器从49.0.1开始不支持JRE8u51及以下的JRE8 @LTCatt

好奇相同条件下其他启动器可否安装成功

HMCL:安装成功,Java选择了JRE8u51,猜测Java选项只是启动游戏时使用的Java BakaXL:安装成功,Java选择了JRE8u40,翻遍了日志没找到具体用的哪个Java

zkitefly commented 8 months ago

HMCL:安装成功,Java选择了JRE8u51,猜测Java选项只是启动游戏时使用的Java

你可以去 HMCL 导出的日志查看使用的是什么 JVM 安装

allMagicNB commented 8 months ago

HMCL:安装成功,Java选择了JRE8u51,猜测Java选项只是启动游戏时使用的Java

你可以去 HMCL 导出的日志查看使用的是什么 JVM 安装

全都是英文……

hejiehao commented 8 months ago

HMCL:安装成功,Java选择了JRE8u51,猜测Java选项只是启动游戏时使用的Java

你可以去 HMCL 导出的日志查看使用的是什么 JVM 安装

全都是英文……

那你发给我吧

allMagicNB commented 8 months ago

hmcl-exported-logs-2024-01-29T22-26-38.log

hejiehao commented 8 months ago

C:\Program Files\Java\jdk-17\bin\java.exe

allMagicNB commented 8 months ago

草,突然发现查找java.exe一个一个看就可以找到了

zkitefly commented 8 months ago

image

我认为你应该在全局和特定游戏设置中选择 Java 路径

allMagicNB commented 8 months ago

image

我认为你应该在全局和特定游戏设置中选择 Java 路径

有没有一种可能,这就是全局 而且我在下载这个版本前,这个版本不存在,我要怎么设置呢?

zkitefly commented 8 months ago

image 我认为你应该在→全局和特定←游戏设置中选择 Java 路径

有没有一种可能,这就是全局

allMagicNB commented 8 months ago

image 我认为你应该在→全局和特定←游戏设置中选择 Java 路径

有没有一种可能,这就是全局

我都没下载下来怎么调整特定游戏设置???

hejiehao commented 8 months ago

image 发了神马玩应

hejiehao commented 8 months ago

如果把其他 Java 卸载,只留下 JRE8u51,会发生什么?

allMagicNB commented 8 months ago

如果把其他 Java 卸载,只留下 JRE8u51,会发生什么?

……虚拟机:你好

zkitefly commented 8 months ago

看了下源码,似乎 HMCL 是根据自身使用的 Java 来安装 Forge 的(?

image

image

image

hejiehao commented 8 months ago

跑容器如何?

allMagicNB commented 8 months ago

看了下源码,似乎 HMCL 是根据自身使用的 Java 来安装 Forge 的

image

image

image

看了眼taskmgr,还真是(

allMagicNB commented 8 months ago

如果把其他 Java 卸载,只留下 JRE8u51,会发生什么?

HMCL会叫你下载微软的OpenJDK

SALTWOOD commented 8 months ago

如果把其他 Java 卸载,只留下 JRE8u51,会发生什么?

HMCL会叫你下载微软的OpenJDK

改源码让它强制使用?

allMagicNB commented 8 months ago

如果把其他 Java 卸载,只留下 JRE8u51,会发生什么?

HMCL会叫你下载微软的OpenJDK

改源码让它强制使用?

……HMCL直接炸

SALTWOOD commented 8 months ago

@allMagicNB 那改源码让 HMCL 用别的 Java 安装?或者手动命令行(

allMagicNB commented 8 months ago

@allMagicNB 那改源码让 HMCL 用别的 Java 安装?或者手动命令行(

……你看我像会Java的样吗?

zkitefly commented 8 months ago

@allMagicNB 那改源码让 HMCL 用别的 Java 安装?或者手动命令行(

……你看我像会Java的样吗?

你只需要在终端输入 C:\Program Files\Java\jre1.8.0_51\bin\java.exe -jar HMCL.exe 就可以指定这个 Java 来启动 HMCL

HMCL.exe 可以是路径,直接将文件拖动至终端窗口就可以了

allMagicNB commented 8 months ago

@allMagicNB 那改源码让 HMCL 用别的 Java 安装?或者手动命令行(

……你看我像会Java的样吗?

你只需要在终端输入 C:\Program Files\Java\jre1.8.0_51\bin\java.exe -jar HMCL.exe 就可以指定这个 Java 来启动 HMCL

我HMCL没在同个目录下,我试试(

allMagicNB commented 8 months ago

成功……地失败了 image

zkitefly commented 8 months ago

成功……地失败了 image

日志