如果在Ubuntu上安装了多个Java版本,如何检查Oracle Java版本

use*_*064 14 java bash ubuntu

我的Ubuntu上安装了OpenJDK和Oracle Java.如果激活的java是OpenJDK,有没有办法在bash shell中检查Oracle java的版本?

Mic*_*tch 18

update-java-alternatives -l 将列出通过替代系统安装的所有Java版本.

例如,在我的一个系统上,它将显示版本和路径:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-7-oracle 1069 /usr/lib/jvm/java-7-oracle
Run Code Online (Sandbox Code Playgroud)

如果你想要oracle那么我想你可以这样做:

update-java-alternatives -l | grep oracle | awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)

这可以选择查找所有oracle版本并-version针对列表中的每个版本发出命令:

update-java-alternatives -l | grep oracle | awk '{system($3"/bin/java -version")}'
Run Code Online (Sandbox Code Playgroud)

输出可能如下所示:

java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)

更进一步的是从-version命令中解析出java版本并简单地显示它:

(update-java-alternatives -l | grep oracle | awk '{system(""$3"/bin/java -version 2>&1 | grep \"java version\"")}') | awk -F\" '{print $2}'
Run Code Online (Sandbox Code Playgroud)

这2>&1是必需的,因为Java会将版本显示为标准错误.输出看起来就像这样(如果你需要的话,可以很容易地分配给bash变量):

1.7.0_67
Run Code Online (Sandbox Code Playgroud)

如果您有多个oracle实例,则会显示每个实例的版本.如果你想找到每个Java的所有版本,你可以简单地删除| grep oracle


小智 7

如果您使用的是openjdk java,则PC中的oracle Java只是一个文件夹.如果您不使用它,则无法检查其版本.

如果您曾经使用过oracle java,那么它必须在您的java替代品中,您可以找到该文件夹​​(通常带有名称版本):

update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

如果它说的是/usr/lib/jvm/jdk1.8.0_05/bin/java,那么你的电脑里就有1.8.

如果你没有随时使用oracle java,你只需要检查你下载了什么.

如果您只想查看您使用的版本:

java -version
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你