Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在执行 Java 检查时无法获取输出,导致无法检测到 Java #1496

Closed
2 tasks done
RawDiamondMC opened this issue Mar 25, 2023 · 21 comments
Closed
2 tasks done
Assignees
Labels
· Bug 完成 该 Issue 已被处理,将在下次更新中实装

Comments

@RawDiamondMC
Copy link

RawDiamondMC commented Mar 25, 2023

检查项

  • 我已点击 设置 → 启动器 → 检查更新 确认了启动器已为最新版,且最新版未修复这个 Bug。怎样更新?
  • 我已在 Issues 页面 中搜索,确认了这一 Bug 未被提交过。

描述

无法正常检测到Java。
虽然我知道这个bug很多人反馈过(例:#1416 ),但是这个bug及其影响PCL2的使用体验,使玩家在打开启动器后必须要手动选择Java。

日志与附件

Log1.txt
在约600行处

@RawDiamondMC RawDiamondMC added 新反馈 需要社区初步确认其有效的新 Issue · Bug labels Mar 25, 2023
@WForst-Breeze WForst-Breeze added 等待确认 已经过社区确认,等待开发者确认 and removed 新反馈 需要社区初步确认其有效的新 Issue labels Mar 25, 2023
@WorldHim
Copy link
Collaborator

这个处理不太方便吧。。主要是java各发行版有自己的命名,有些用户还会手动更改安装文件夹名甚至改成中文。。。
如果要彻底解决就要全盘搜索javaw,但这无疑速度极慢且造成卡顿。。

@LTCatt
Copy link
Member

LTCatt commented Mar 25, 2023

image

看起来更像是 PCL 无法运行找到的 Java。
手动对这些 Java 执行一下 -version,看看有没有正常的输出?

@LTCatt LTCatt added 等待反馈者 需要反馈者补充信息或配合测试 and removed 等待确认 已经过社区确认,等待开发者确认 labels Mar 25, 2023
@RawDiamondMC
Copy link
Author

image

看起来更像是 PCL 无法运行找到的 Java。 手动对这些 Java 执行一下 -version,看看有没有正常的输出?

我记得是能正常输出的,我待会发个log

@RawDiamondMC
Copy link
Author

RawDiamondMC commented Mar 25, 2023

不太妙...
首先,正常输出是有的

java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

但是呢,在安装了Jdk20后出了点意外情况...
jdk20似乎在C:\Program Files\Common Files\Oracle\Java\javapath下添加了一些文件(如java.exe,javaw.exe),并将这个目录添加到了PATH,导致在执行java.exe -version时输出来自这个目录下的文件,清除PATH后正常。目前尚不知道这个问题会不会影响到PCL2检测,我去测试一下。

EDIT:莫名其妙好了,我重装一下试试
EDIT2:重装也一样,暂时忽略掉安装jdk20后的意外情况吧...

@LTCatt LTCatt added 处理中 开发者正在调查或处理该 Issue 🟦 推迟 当前版本暂不处理,之后再说 and removed 等待反馈者 需要反馈者补充信息或配合测试 labels Mar 26, 2023
@HomoobyDX

This comment was marked as spam.

@LTCatt
Copy link
Member

LTCatt commented Apr 6, 2023

现在 2.5.2 可以复现么?

@LTCatt LTCatt added 等待反馈者 需要反馈者补充信息或配合测试 and removed 处理中 开发者正在调查或处理该 Issue 🟦 推迟 当前版本暂不处理,之后再说 labels Apr 6, 2023
@RawDiamondMC
Copy link
Author

现在 2.5.2 可以复现么?

能,而且在已经检测到有java(没检测完全)时点击自动搜索后干脆提示没有可用的java了...

@LTCatt LTCatt added 处理中 开发者正在调查或处理该 Issue 🟦 推迟 当前版本暂不处理,之后再说 等待反馈者 需要反馈者补充信息或配合测试 and removed 等待反馈者 需要反馈者补充信息或配合测试 处理中 开发者正在调查或处理该 Issue 🟦 推迟 当前版本暂不处理,之后再说 labels Apr 6, 2023
@LTCatt LTCatt changed the title 修复无法检测到Java的bug 在执行 Java 检查时无法获取输出,导致无法检测到 Java Apr 8, 2023
@LTCatt
Copy link
Member

LTCatt commented Apr 9, 2023

目前只能在反馈者的电脑上复现此问题,应该是系统环境问题,且我根本想不到要怎么修……这个没办法了(

@LTCatt
Copy link
Member

LTCatt commented Sep 11, 2023

目前 #1682 也出现了这个问题,但依然不知道要如何修复,如果谁知道怎么修可以回

@LTCatt LTCatt added the 需要社区帮助 开发者无法处理,需要社区提供帮助 label Sep 11, 2023
@LTCatt
Copy link
Member

LTCatt commented Jan 6, 2024

这个 issue 是因为在未知条件下,PCL 尝试运行 java -version,但 java 不会给予 PCL 任何 stdout 输出(可以理解为在 cmd 运行 java -version 但窗口里没有任何输出,java 运行完直接结束了)
尝试过在出现这个 issue 的电脑上直接用 cmd 跑,结果是正常的,并不知道为什么 PCL 跑就拿不到输出……
如果有人有头绪可以说一下,但我确实不知道咋整

@RawDiamondMC
Copy link
Author

RawDiamondMC commented Jan 6, 2024

这么久没看,这个issue都变重要了

可不可以尝试读取java.exe上一级目录的release文件?

想法:java -jar 一个jar,然后这个jar通过某种方式传回pcl2。这总不可能获取不到了吧()

@LTCatt 看看这个可行不可行

@LTCatt
Copy link
Member

LTCatt commented Jan 6, 2024

@00ll00 umm有空可以看看?
指不定楼上的思路可以,通过启动一个 java 程序的方式获取 java 版本(java -version 的信息)……

@LTCatt LTCatt added 处理中 开发者正在调查或处理该 Issue 第三方 等待第三方处理,或是由第三方导致 and removed 拒绝 / 放弃 不会制作该功能或无法修复该 Bug 需要社区帮助 开发者无法处理,需要社区提供帮助 labels Jan 6, 2024
@HexDragon-Bot HexDragon-Bot reopened this Jan 6, 2024
@RawDiamondMC
Copy link
Author

RawDiamondMC commented Jan 7, 2024

@00ll00 umm有空可以看看? 指不定楼上的思路可以,通过启动一个 java 程序的方式获取 java 版本(java -version 的信息)……

我能搓()

这玩意应该不难

@00ll00
Copy link
Collaborator

00ll00 commented Jan 8, 2024

@00ll00 umm有空可以看看? 指不定楼上的思路可以,通过启动一个 java 程序的方式获取 java 版本(java -version 的信息)……

发现一个神奇的事(openjdk java.c:1381)
image

总之改成java --version看看

审题审歪了,不是这个的问题😅

@LTCatt LTCatt removed the 第三方 等待第三方处理,或是由第三方导致 label Jan 8, 2024
@00ll00
Copy link
Collaborator

00ll00 commented Jan 9, 2024

看了看PCL的源码,现在怀疑是 ModeBase.vb: 1983, 1985 这两行的顺序引起了死锁造成的。

从日志里面看获取版本失败的时候等待时间几乎和设置的进程超时时间相同,理论上 java -version 没道理跑15秒。

@allMagicNB
Copy link
Collaborator

看了看PCL的源码,现在怀疑是 ModeBase.vb: 1983, 1985 这两行的顺序引起了死锁造成的。

从日志里面看获取版本失败的时候等待时间几乎和设置的进程超时时间相同,理论上 java -version 没道理跑15秒。

确实,我卡卡卡卡卡卡卡卡卡的老电脑都不会超过十秒……而且那台电脑基本无法流畅玩1.12+

@LTCatt LTCatt closed this as completed Jan 16, 2024
@HexDragon-Bot HexDragon-Bot added 完成 该 Issue 已被处理,将在下次更新中实装 and removed 处理中 开发者正在调查或处理该 Issue labels Jan 16, 2024
@ghost
Copy link

ghost commented Feb 6, 2024

评价:Read一下Java文件夹下的Release不就可以了。。。。。

@hejiehao
Copy link
Contributor

hejiehao commented Feb 6, 2024

评价:Read一下Java文件夹下的Release不就可以了。。。。。

不一定有这个

@RawDiamondMC
Copy link
Author

识别码:2DDE-405F-B30F-C4E0
要个活跃橙(

@LTCatt
Copy link
Member

LTCatt commented Feb 22, 2024

你的解锁码:pZPyfNMcf4vVan+pQmobqFnmOjcp29Qz
在 更多 → 关于与鸣谢 → 输入解锁码 中使用,谢谢支持~

@ghost
Copy link

ghost commented Mar 4, 2024

不一定有这个

大部分都有
极少部分(比如wyjava)
不过大概率不会有这种情况

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
· Bug 完成 该 Issue 已被处理,将在下次更新中实装
Projects
None yet
Development

No branches or pull requests

9 participants