我的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)
希望能帮助到你