![](/img/trans.png)
[英]Why is alternatives command used when installing Java on a Linux machine
[英]When and Why run alternatives --install java jar javac javaws on installing jdk in linux
在linux下安裝java(我用的是CentOS,RHEL也是一樣),我用這個命令
rpm -Uvh /path/to/binary/jdk-7u55-linux-x64.rpm
和驗證的java
java -version
查看教程,它說要運行以下 4 個命令,不知道為什么
## java ##
alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000
## javaws ##
alternatives --install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 200000
## Install javac only
alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000
## jar ##
alternatives --install /usr/bin/jar jar /usr/java/latest/bin/jar 200000
我知道如果安裝了多個版本的java,您可以從中選擇要使用的版本
alternatives --config java
那么為什么要為每個可執行文件單獨運行alternative --install
。
我看過這個問題,但沒有得到我的答案
在 Linux 上安裝 JDK 時,安裝的內容取決於包的類型、版本和發行版。 linux上的安裝位置可以參考以下鏈接:
安裝 JDK 后,可能不會將包含工具的bin
文件夾添加到環境變量PATH
。 在終端上鍵入的命令需要來自PATH
變量中指定的位置。 在未添加JDK\\bin
情況下,用戶需要按照安裝 JDK 軟件中所述手動配置它
正在使用alternatives
命令來創建符號鏈接。 在這里,它被指示使用命令將javac
、 javaw
等工具添加到/usr/bin
默認情況下存在於PATH
變量中。
如果(您可以在JDK/bin
&&之外執行java -version
,而不是通過指定完整路徑&&如果版本和包打印為您安裝的包的版本){您不需要運行alternatives
命令。 }
java
、 javaws
、 javac
和jar
都是 JDK 使用的不同可執行文件。 當您運行alternatives --config java
您只是在配置您希望運行的java
可執行文件的哪個版本。 但是,JDK 包括例如javac
編譯器。 您還需要配置要使用的編譯器版本。
簡而言之, alternatives命令用於維護符號(或 sym)鏈接的查找。 在您可以使用--configure
選項選擇要運行的java
版本之前,您必須首先使用--install
選項注冊可執行文件的實際路徑。 alternatives --install
沒有安裝任何軟件。 它只是向alternatives
框架注冊一些路徑和別名。 (注意: alternatives
不使用alias
命令。我的意思是傳統的字面意義上的“別名”。)
您還應該了解rpm
命令的作用。 實際上,它只是將一組二進制文件放到特定目錄中。 明確指定此目錄可能很長且繁瑣: /some/path/to/lib/jvm/java-1.xx-etc-etc-x86/jre/bin/java
。 您不想在每次運行java
時都指定此項。 相反,我們設置了一些符號鏈接。
您可能還想了解PATH
在 linux 中的工作方式。
如果您嘗試跟蹤機器的設置,它可能會變得更清楚。 這是我跑的:
> which java
/usr/bin/java
> ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Aug 14 2014 /usr/bin/java -> /etc/alternatives/java
> ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Aug 14 2014 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.fc19.x86_64/jre/bin/java
對於 Ubuntu,使用update-alternatives
也許,只是指南已經過時了。
安裝 rpm 后,您可以檢查:
替代品--顯示java
看看你是否可以看到新版本是由替代控制的,如果不是你需要“--install”它們; 否則,我認為您可以跳過“--install”部分。
這些“替代”腳本和類似工具只是將所需 JDK 版本的二進制文件符號鏈接到它們預期的目錄。 它已為您的命令行上應該可用的所有命令完成。
“全部”的定義取決於您的發行版。
要在您的操作系統中默認使用不同版本的 java JRE/JDK:
sudo alternatives --install /usr/bin/java java [path_to_java_bin] 1
我的例子是:
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_80/bin/java 1
然后運行配置以選擇替代的 Java 版本:
sudo /usr/sbin/alternatives --config java
選擇 1,2 或您想要的選項
然后通過執行以下操作檢查更改:
java -version
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.