Blessing-Studio / WonderLab

下一代 Minecraft 启动器
MIT License
148 stars 1 forks source link

采用新的跨平台java搜索办法(针对mac和Linux包管理器) #47

Open HainanWinter-l opened 1 year ago

HainanWinter-l commented 1 year ago

建议描述

原理

提供一个我的实现,参考参考,直接改了拿过来用也行

Linux平台

使用包管理器安装JDK后,会在/usr/lib/jvm/usr/lib64/jvm路径下生成文件。即/usr/lib/jvm/一个JDK/bin/java/usr/lib64/jvm/一个JDK/bin/java为java路径。此外,若存在/usr/lib/jvm/一个JDK/release/usr/lib64/一个JDK/release文件,也可以通过读取改文件中的JAVA_VERSION="版本"来获取java版本。若不存在也可以使用java -version来获得版本。使用Process读取时注意,应该使用.StandardError.ReadToEnd(),若使用.StandardOutput.ReadToEnd()可能会返回空串 此外,因为各个发行版提供了不同的默认Java选择方法,/usr/lib/jvm/usr/lib64/jvm路径下可能存在软连接文件夹,造成重复选择。

关于软链接,参考以下

#arch linux
ls /usr/lib/jvm/ -al
总计 92
drwxr-xr-x  5 root root  4096  2月 6日 11:34 ./
drwxr-xr-x 82 root root 73728  2月 6日 11:32 ../
lrwxrwxrwx  1 root root    15 2022年 6月28日 default -> java-18-openjdk/
lrwxrwxrwx  1 root root    15 2022年 6月28日 default-runtime -> java-18-openjdk/
drwxr-xr-x  7 root root  4096 2022年 6月10日 java-18-openjdk/
drwxr-xr-x  6 root root  4096  2月 6日 11:34 java-19-jdk/
drwxr-xr-x  6 root root  4096 2022年 5月 5日 java-8-openjdk/

macOS平台

从甲骨文官网下载JDK后双击安装后会在/Library/Java/JavaVirtualMachines/路径下生成文件。即/Library/Java/JavaVirtualMachines/一个JDK/Contents/Home/bin/java,release则是在/Library/Java/JavaVirtualMachines/一个JDK/Contents/Home/release

操作系统版本

Linux

WonderLab版本

1.0.1.6

补充信息

No response

hei-shou commented 1 year ago