我怎么知道我的程序在Debian / Ubuntu上运行的是什么版本的Java?

想要列出在系统上运行的Java虚拟机,以及这些虚拟机托pipe哪些程序。 特别是哪个tomcat使用哪个java版本。 有没有任何命令行工具,我可以在debian像系统上使用?


对于tomcat,我发现:

ps uax | grep tomcat 

它给出了完整的命令行,包括使用的Java虚拟机的path,但是有更多的面向Java的方式获得全面的列表?

如果使用update-java-alternatives正确安装,可以通过发出以下命令find它们:

 # 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放到任何地方,你将不得不parsing比那些更有针对性的东西的输出

 # ps -def | grep java 

与Tomcat相似的东西。 如果使用存储库安装Tomcat,则文件/etc/default/tomcat{6,7}包含一个指向此实例使用的JRE / JDK的JAVA_HOMEvariables。

 java -version 

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