Rhel

如何驗證是否在 rhel 上安裝了 Java

  • July 27, 2017

我站起來 rhel VM。我很好奇是否安裝了JDK,所以我從shell(bash)執行了一個命令。

whereis java

它返回:

java: /usr/bin/java

所以我導航到路徑以驗證 Java 程序。

ls -l java

哪個返回:

lrwxrwxrwx 1 root root 26 May 2016 10:52 java -> /usr/java/default/bin/java

到目前為止一切都很好但是當執行java程序時:

java
-bash: java: command not found

看起來 java 有符號連結,但 /usr/java/default/bin/java 不再存在。我只是想驗證是否安裝了 java (jdk) 但從我所看到的情況來看我不太確定。我想相信它沒有安裝如果是這樣為什麼系統返回java:/usr/bin/java?

我想相信它沒有安裝如果是這樣為什麼系統返回java:/usr/bin/java?

whereis不解析符號連結。所以如果 /usr/bin/java 仍然存在,即使符號連結目標被破壞,它仍然會返回java: /usr/bin/java. 我建議您使用type -a java以獲得正確的結果。請注意,符號連結目標或非符號連結源文件,兩者都必須是可執行的(chmod +x設置它),否則type -a即使文件存在,命令也會返回 not found (type無論執行檔仍然會返回)。

所以,我可以簡化如下:

whereis: 即使符號連結損壞或不可執行,仍然返回發現。

類型:即使是不可執行的也可以返回,如果符號連結損壞,則返回未找到。

type -a:符號連結損壞或不可執行時未找到返回。

如果輸入文件不存在,它們都將返回 not found 。

所以,我可以建議再次安裝 JDK,“Oracle JDK”比“OpenJDK”更受歡迎

可以在這裡找到一篇好文章。

這是你可以做的(假設你的系統是 x64):

sudo rpm -ivh jdk-8u91-linux-x64.rpm
sudo rpm -ivh jdk-8u91-linux-x64-demos.rpm 

以上8u91版本的版本號一直在更新,所以您應該經常訪問Oracle 網站以查找最新版本。點擊JDK DOWNLOAD按鈕將轉到此頁面,該頁面顯示最新版本號及其正確的文件名。

您也可以下載可以在此處找到真正連結的文件頁面,並解壓縮(假設您的 JDK 已安裝在/usr/java/jdk1.8.0_91/):

sudo unzip jdk-8u91-docs-all.zip -d /usr/java/jdk1.8.0_91/ #optional

然後使用這兩個命令來選擇正確的 javac 和 java。我相信您只有一個選擇(此範例顯示 jdk1.8.0_74,因為我的不是最新的 8u91):

$ sudo alternatives --config javac

There are 2 programs which provide 'javac'.

 Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/bin/javac
  2           /usr/java/jdk1.8.0_74/bin/javac

Enter to keep the current selection[+], or type selection number: 2
$
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

 Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/jre/bin/java
+ 2           /usr/java/jdk1.8.0_74/jre/bin/java

Enter to keep the current selection[+], or type selection number: 2
$ 

引用自:https://unix.stackexchange.com/questions/282313