我想用一个命令获取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)
9条答案
按热度按时间u7up0aaq1#
1.将标准错误重定向到标准输出。
1.获取第一行
1.筛选版本号。
uemypmqf2#
这是一个微小的变化,但PJW的解决方案并不完全适合我:
只需剪切分隔符
"
(双引号)上的字符串,并获取第二个字段。v7pvogib3#
我建议使用
grep -i version
来确保你得到正确的包含版本字符串的行。如果你设置了环境变量JAVA_OPTIONS,openjdk会在打印版本信息之前打印java选项。这个版本返回1.6,1.7等等。xytpbqjk4#
因为(至少在我的Linux系统上)版本字符串看起来像“1.8.0_45”:
j9per5c45#
您可以使用
--version
,在这种情况下,不需要重定向到stdout来自Java帮助
w7t8yxp56#
这是我的变体(感谢之前的许多回答)。我的目标是产生一个符合JEP 223的“主版本”。我不知道它是否适用于所有已发布(或即将发布)的java版本。
| 版本|结果|
| - ------|- ------|
| 1.6.0_65|1.6岁|
| 1.8.0_282|1.8岁|
| 十一月十日|十一|
| 第十五章|十五|
4urapxun7#
这条路适合我。
umuewwlo8#
产出
或者
产出
yx2lnoni9#
仅获取“主要”构建版本号: