我如何知道我的程序在 Debian/Ubuntu 上运行的是哪个版本的 Java?

我如何知道我的程序在 Debian/Ubuntu 上运行的是哪个版本的 Java?

想要列出系统上运行的 Java VM 以及它们托管的程序。特别是哪个 tomcat 使用哪个 Java 版本。是否有任何命令行工具可以在类似 Debian 的系统上使用?


对于 tomcat 我特别发现:

ps uax | grep tomcat

它提供了包含所用 java vm 路径的完整命令行,但是是否有更面向 java 的方法来获取全面的列表?

答案1

如果使用正确安装update-java-alternatives,您可以通过以下命令找到它们:

# update-java-alternatives -l
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-gcj-4.6 /usr/lib/jvm/java-gcj-4.6
java-gcj-4.7 /usr/lib/jvm/java-gcj-4.7
jdk1.7.0_03 7003 /usr/lib/jvm/jdk1.7.0_03

否则,如果仅使用普通update-alternatives系统安装,请使用:

# update-alternatives --display java

如果你只是把 JRE/JDK 放到任何地方,你将不得不解析一些更有针对性的输出,而不是

# ps -def | grep java

Tomcat 的情况类似。如果您使用存储库安装了 Tomcat,则该文件/etc/default/tomcat{6,7}包含一个JAVA_HOME指向此实例使用的 JRE/JDK 的变量。

答案2

java -version

另外,运行一个文件/etc/alternatives/java。这将显示二进制文件的位置。

相关内容