HMCL icon indicating copy to clipboard operation
HMCL copied to clipboard

[Enhancement] 无法识别从 sdkman 安装的未选中的 Java 版本

Open vochant opened this issue 1 year ago • 16 comments

描述 |Description

  1. 在 Linux 系统安装 sdkman,不保证所有发行版都存在这个问题
  2. 使用 sdkman 安装多个 Java 版本
  3. 下载并打开 HMCL 启动器
  4. 在设置->全局游戏设置->Java路径中,对于 sdkman 安装的 Java 仅能识别当前选中的

vochant avatar May 12 '24 04:05 vochant

请确认其他未选中的 Java 版本真实存在于文件系统中

burningtnt avatar May 12 '24 06:05 burningtnt

请确认其他未选中的 Java 版本真实存在于文件系统中

是的,所有Java版本均位于 <path_to_sdkman>/candidates/java/<version> 下,且手动选择可以正常使用。sdkman 只会为选中的版本添加 PATH。

vochant avatar May 12 '24 07:05 vochant

…… 那就只是因为 HMCL 没有扫这个路径。你可以为 HMCL 添加一个。

burningtnt avatar May 12 '24 07:05 burningtnt

改成 feature 倒不要紧,不过能加到更新计划里面吗?

vochant avatar May 12 '24 09:05 vochant

https://github.com/HMCL-dev/HMCL/pull/2988

这里的 添加 Java 能否满足需求

zkitefly avatar May 12 '24 10:05 zkitefly

#2988

这里的 添加 Java 能否满足需求

是可以解决的

burningtnt avatar May 12 '24 10:05 burningtnt

就是说把这个加到扫描路径里面?

vochant avatar May 12 '24 11:05 vochant

希望就是说默认包含这个路径,毕竟 Linux 的 sdkman 应该还算有用的

vochant avatar May 12 '24 11:05 vochant

<path_to_sdkman>/candidates/java/ 的 <path_to_sdkman> 是固定的吗

zkitefly avatar May 12 '24 12:05 zkitefly

就是说把这个加到扫描路径里面?

手动添加 Java 路径,不是扫描

zkitefly avatar May 12 '24 12:05 zkitefly

<path_to_sdkman>/candidates/java/ 的 <path_to_sdkman> 是固定的吗

存在环境变量 SDKMAN_DIR,但是是在 *shrc 这种文件而不是 profile 中定义,通常是~/.sdkman。具体可以安装一个试试看。

vochant avatar May 12 '24 17:05 vochant

和 Homebrew 的那个 issue 道理差不多,本来就是两个第三方包管理器。另外 sdkman 除了 Linux 和 macOS 还支持 MSYS、Cygwin 这些,确实有些复杂,也没必要全都支持。至于 Linux 大多数人也不会想着改安装路径,直接用 ~/.sdkman 已经能解决绝大多数的情况了。

vochant avatar May 12 '24 17:05 vochant

你可以大胆直接推个 PR。现在 HMCL 很多功能没有做只是因为没人写代码() 你只要敢做我们就敢合

burningtnt avatar May 13 '24 01:05 burningtnt

问题是人家是用户,代码架构长什么样都不知道,甚至未必会Java()

有空可以去看看,但一时半会的真的搞不定,是否存在哪位愿意整合一下这些常见的包管理器的

vochant avatar May 13 '24 03:05 vochant

可以参考 https://github.com/HMCL-dev/HMCL/pull/3035

zkitefly avatar May 13 '24 03:05 zkitefly

如果你给出足够的理由,那才能撬动我们把你这个 issue 拍到高优先级

burningtnt avatar May 13 '24 03:05 burningtnt