也许这是一个简单的问题。
我没有找到安装 Java JDK 和 JRE 的命令的解释
我下载了jdk-7u5-linux-x64.tar.gz 和jre-7u5-linux-x64.tar.gz,我提取了这些文件,然后移至/usr/lib/jvm/.我猜这个名字/jvm(我创建它是因为我没有它)并不重要因为安装是通过链接进行的。
大多数网站告诉我我已经写了这个但他们没有解释原因。
我猜这会在 /usr/bin/ 中创建一个 java 链接
/usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/jdk1.7.0_05/bin/java
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1
/usr/bin/java ===================> 是最终链接
java ===========================> 我不明白为什么我必须写这个
/usr/lib/jvm/jdk1.7.0_05/bin/java ==> 原始文件
1 ============================> 为什么是 1?有些人写 2、3 或者我看到的是 2000!
在 java、javac 和 javaws 中也一样。在 JRE 中也一样,但是当我安装 JRE 时,链接被替换了
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.7.0/bin/java 2
当我选择sudo 更新替代方案 --config java只能选一个,那么jdk/bin/java 和 jre/bin/java 有什么区别(它们是同一个版本)
有人能用简单的方式解释一下吗?因为我是初学者,对 Java 一无所知,我只需要这些 Java 来用于使用它的其他程序
谁能给我发送一个有关如何正确安装这两个内容的良好页面?
谢谢
答案1
update-alternatives
查看with的手册页man update-alternatives
。那里对选项有很好的解释。
Debian 替代系统是用户用于特定功能的命令与系统管理员为该功能选择的命令之间的接口。通过这种方式,管理员可以更改该功能的底层命令,而不会干扰用户使用的命令。假设用户使用命令editor
编辑文件,管理员通过 将该命令链接到vi
;update-alternatives
然后出现/etc/alternatives/editor
更好的编辑器vim
,管理员将链接更改为vim
,用户仍然可以使用editor
命令编辑文件。
语法是
update-alternatives --install link name path priority
link
= 供用户使用的主命令(例如,只需通过 just because/usr/bin/java
即可访问,默认情况下会搜索任何命令)java
/usr/bin
name
= 目录下的中间链接的名称/etc/alternatives
,作为用户命令和实际命令之间的接口(例如java
创建/etc/alternatives/java
;用户命令/usr/bin/java
指向它)。这就是为什么你必须写java
)path
= 管理员设置的实际命令(例如/usr/lib/jvm/jdk1.7.0/bin/java
;/etc/alternatives/java
链接到它)priority
= 默认使用的命令,由管理员设置(例如 1 表示最高优先级或默认,2 表示次高优先级,依此类推)
因此,如果您有多个 Java 安装,例如 OpenJDK 和 Oracle 的 JDK,则可以通过此设置在它们之间进行选择,同时继续java
以用户身份使用命令并以管理员身份设置优先级,这实际上是在改变与实际程序update-alternatives --config java
之间的链接。/etc/alternatives/java
java
java
JDK和 JRE实际上没有区别java
。事实上,在 JDK 安装中,JDKjava
是 JRE 的符号链接java
。