简体   繁体   English

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

[英]Bash command to check if Oracle or OpenJDK java version is installed on Linux

I need a bash line to check if java version currently installed is Oracle's or OpenJDK.我需要一个 bash 行来检查当前安装的 java 版本是 Oracle 还是 OpenJDK。

A one-liner by parsing the output of the java -version command:通过解析java -version命令的输出的单行:

java -version

java Oracle output: 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 Output: 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)
if [[ $(java -version 2>&1) == *"OpenJDK"* ]]; then echo ok; else echo 'not ok'; fi
java -version 2>&1 | grep "OpenJDK Runtime" | wc -l

returns 0 if using Oracle JDK, 1 if using OpenJDK如果使用 Oracle JDK,则返回 0,如果使用 OpenJDK,则返回 1

Bash condition:重击条件:

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

You can use below shell script for you work:您可以使用以下 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

NOTE: This will cover all java executable files running on you hosts.注意:这将涵盖在您的主机上运行的所有 java 可执行文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM