Bash命令检查Linux上是否安装了Oracle或OpenJDK java版本

时间:2016-04-06 08:26:34

标签: java linux bash

我需要一个bash行来检查当前安装的java版本是Oracle还是OpenJDK。

通过解析java -version命令的输出来实现单行:

java -version

java Oracle输出:

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

java OpenJDK输出:

java version "1.7.0_91"
OpenJDK Runtime Environment (amzn-2.6.2.2.63.amzn1-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

3 个答案:

答案 0 :(得分:21)

java -version 2>&1 | grep "OpenJDK Runtime" | wc -l
如果使用Oracle JDK,则

返回0;如果使用OpenJDK

,则返回1

Bash条件:

if [[ $(java -version 2>&1 | grep "OpenJDK Runtime") ]]

答案 1 :(得分:19)

if [[ $(java -version 2>&1) == *"OpenJDK"* ]]; then echo ok; else echo 'not ok'; fi

答案 2 :(得分:0)

您可以在工作中使用以下Shell脚本:

#!/bin/bash

declare -a JAVA=($(sudo find / -name java | grep -v grep | grep "/bin/java"))

for javapath in "${JAVA[@]}"
do 
 if [[ $(sudo  ${javapath} -version 2>&1) != *"OpenJDK"* ]]; then 
    export JAVAVER=$(${javapath} -version 2>&1);
    echo "Java Location -- ${javapath}"
    echo "${JAVAVER}"

 fi
done

注意:这将涵盖您主机上运行的所有Java可执行文件。