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
如果你想要 oracle 那么我想你可以这样做:
update-java-alternatives -l | grep oracle | awk '{ print $1 }'
这也可以找到所有 oracle 版本并发出-version
针对列表中的每一项命令:
update-java-alternatives -l | grep oracle | awk '{system($3"/bin/java -version")}'
输出可能如下所示:
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)
更进一步,从以下内容中解析出 java 版本:-version
命令并简单地显示它:
(update-java-alternatives -l | grep oracle | awk '{system(""$3"/bin/java -version 2>&1 | grep \"java version\"")}') | awk -F\" '{print $2}'
The 2>&1
是必需的,因为 Java 会将版本显示为标准错误。输出看起来就像这样(如果您需要的话,可以很容易地分配给 bash 变量):
1.7.0_67
如果您有多个 Oracle 实例,这将显示每个实例的版本。如果您想查找每个 Java 的所有版本,您只需删除| grep oracle