如何在 Linux 中使用单行命令获取 Java 版本
我想通过单个命令获取 Linux 中的 Java 版本。
我是 awk 的新手,所以我正在尝试类似的方法
java -version|awk '{print$3}'
但这不会返回版本。如何从下面的 Java 版本输出中获取 1.6.0_21
?
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
I want to fetch the Java version in Linux in a single command.
I am new to awk so I am trying something like
java -version|awk '{print$3}'
But that does not return the version. How would I fetch the 1.6.0_21
from the below Java version output?
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
这是我的变体(感谢/致谢之前的许多答案)。我的目标是生成一个符合 JEP 223 的“主要版本”。作出假设;我不知道它是否适用于所有已发布(或即将发布)版本的 java。
Here's my variation (with thanks/acknowledgements to many answers prior to this). My goal is to produce a "Major Version" in line with JEP 223. Assumption are made; I don't know if it works across the board for all released (or to be released) versions of java.
这种方法对我有用。
This way works for me.
输出
还是
输出
Output
Or
Output
仅获取“主要”版本#:
Getting only the "major" build #:
过滤版本号。
Filter the version number.
这是一个细微的变化,但 PJW 的解决方案对我来说不太有效:
只需剪切分隔符
"
(双引号)上的字符串并获取第二个字段。This is a slight variation, but PJW's solution didn't quite work for me:
just cut the string on the delimiter
"
(double quotes) and get the second field.我建议使用 grep -i version 来确保您获得包含版本字符串的正确行。如果设置了环境变量JAVA_OPTIONS,openjdk将在打印版本信息之前打印java选项。此版本返回 1.6、1.7 等。
I'd suggest using
grep -i version
to make sure you get the right line containing the version string. If you have the environment variable JAVA_OPTIONS set, openjdk will print the java options before printing the version information. This version returns 1.6, 1.7 etc.因为(至少在我的 Linux 系统上)版本字符串看起来像“1.8.0_45”:
Since (at least on my linux system) the version string looks like "1.8.0_45":
您可以使用
--version
,在这种情况下,不需要重定向到 stdout来自 java help
You can use
--version
and in that case it's not required to redirect to stdoutFrom java help