簡體   English   中英

何時以及為何在 Linux 中安裝 jdk 時運行替代方案 --install java jar javac javaws

[英]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上的安裝位置可以參考以下鏈接:

適用於 Linux 平台的 JDK 安裝 - 版本 8

適用於 Linux 平台的 JDK 安裝 - 版本 7

安裝 JDK 后,可能不會將包含工具的bin文件夾添加到環境變量PATH 在終端上鍵入的命令需要來自PATH變量中指定的位置。 在未添加JDK\\bin情況下,用戶需要按照安裝 JDK 軟件中所述手動配置它

正在使用alternatives命令來創建符號鏈接。 在這里,它被指示使用命令將javacjavaw等工具添加到/usr/bin默認情況下存在於PATH變量中。

如果(您可以在JDK/bin &&之外執行java -version ,而不是通過指定完整路徑&&如果版本和包打印為您安裝的包的版本){您不需要運行alternatives命令。 }

javajavawsjavacjar都是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM