给定java.exe的绝对路径如何判断是JDK还是JRE

问题描述 投票:0回答:1

我希望确定 java 可执行文件的绝对路径是否来自 JDK 或 JRE。

我在 JDK 和 JRE 下的

bin/java
上尝试了以下命令

/bin/java -XshowSettings:properties -version

但是除了

 user.dir

之外,输出是相同的

user.dir = /home/wladmin/goodbadjdk/jdk1.8.0_411/bin

user.dir = /home/wladmin/goodbadjdk/jdk1.8.0_411/jre/bin

我发现的一个区别是 JRE 文件夹具有 JDK 没有的文件夹结构

/home/wladmin/goodbadjdk/jdk1.8.0_411/jre/lib/security

另一个区别是 JDK 有

/home/wladmin/goodbadjdk/jdk1.8.0_411/bin/javac
但 JRE 没有。

尽管如此,确定给定 bin/java 路径中是 JRE 还是 JDK 的理想方法是什么?

java version java-runtime-compiler java-deployment-toolkit
1个回答
0
投票

使用类 ProcessHandle 类 – 自 Java 9 起可用。

ProcessHandle ph = ProcessHandle.current();
ProcessHandle.Info info = ph.info();
System.out.println(info.command()
                       .orElse("Command not found."));
© www.soinside.com 2019 - 2024. All rights reserved.