2017-06-06 84 views
-1

我需要知道一個命令以查找系統路徑中的所有Java版本。我知道which -a java會打印所有可以在系統路徑中找到java可執行文件的位置,但是我想要獲取每個可執行文件的版本信息。查找系統路徑中的所有Java版本

回答

1

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

這將打印的路徑中的每個系統路徑中發現的Java可執行的,以及該可執行文件的版本信息,以及單獨的條目以換行符。它的工作原理是這樣:

  1. 管從which -a java輸出到xargs的
  2. 使用xargs -I{} echo構建bash命令,從which更換{}
  3. 管構造的bash命令插入到系統的默認輸入中的每行shell執行者。

在我的機器上的一個樣本輸出給

/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