查找系统路径中的所有Java版本

时间:2017-06-06 15:03:15

标签: linux bash admin

我需要知道一个命令来查找系统路径中的所有Java版本。我知道which -a java将打印在系统路径中可以找到java可执行文件的所有位置,但我想获取每个可执行文件的版本信息。

1 个答案:

答案 0 :(得分:1)

which -a java | xargs -I{} echo "echo {};{} -version;echo" | sh

这将打印系统路径中找到的每个java可执行文件的路径,以及该可执行文件的版本信息,以及带换行符的单独条目。它的工作原理如下:

  1. which -a java的输出传输到xargs
  2. 使用xargs -I{} echo构建bash命令,which替换{}
  3. 的输入中的每一行
  4. 将构造的bash命令传递到系​​统的默认shell执行程序中。
  5. 我机器上的示例输出

    /usr/bin/java
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
    /usr/lib/jvm/java-8-oracle/bin/java
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    

    请注意,如果您想知道不同可执行文件的版本,可以修改构造的bash命令以正确打印版本信息。例如。如果你想知道python的所有版本,你可以运行

    which -a python | xargs -I{} echo "echo {};{} --version;echo" | sh