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

新手上路,请多包涵

我需要一个 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)

原文由 Basil Musa 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 Cortwave 发布,翻译遵循 CC BY-SA 3.0 许可协议

java -version 2>&1 | grep "OpenJDK Runtime" | wc -l

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

重击条件:

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

原文由 jchampemont 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题