我update-alternatives
查了好几次手册,但我找不到如何显示指向特定替代方案的当前链接,并且在添加新替代方案时需要该信息。
从update-alternatives
手册:
--install <link> <name> <path> <priority>
Run Code Online (Sandbox Code Playgroud)
假设我想添加新版本的 Java Runtime Edition,但我不知道链接到替代项(<link>
参数)的当前符号链接。我目前做的是:
sudo update-alternatives --install /tmp/randomStuff java /usr/local/java/jre1.7.0_25/bin/java 0
Run Code Online (Sandbox Code Playgroud)
该命令将输出:
update-alternatives: renaming java link from /usr/local/bin/java to /tmp/randomStuff.
Run Code Online (Sandbox Code Playgroud)
阅读输出我找到了指向替代的旧链接,所以我终于可以使用正确的<link>
参数再次运行我的命令,更改/tmp/randomStuff
为/usr/local/bin/java
:
sudo update-alternatives --install /usr/local/bin/java java /usr/local/java/jre1.7.0_25/bin/java 0
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如您所见,使用/tmp/randomStuff
as<link>
参数运行命令非常尴尬。
因此,问题来了:(1)是否有任何update-alternative
参数可以输出指向特定替代方案的当前链接,或者(2)是否有一种方法可以安装新替代方案而无需提供新参数,只需保持当前<link>
?
我一直试图找出将 OpenJDK Java 运行时作为我的 Fedora 机器的默认 Java 运行的最佳方法,并使用 Oracle JDK 6 进行 Android 开发,即从 Android Bundle 运行 Android SDK Manager、Android Studio 和 Eclipse。
我从 Fedora 存储库安装了 OpenJDK Java Runtime,它具有如下设置替代方案。
[donnie@fedora ~]$ alternatives --list | grep java
jre_openjdk auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
jre_1.7.0 auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
java auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java
libjavaplugin.so.x86_64 auto /usr/lib64/IcedTeaPlugin.so
Run Code Online (Sandbox Code Playgroud)
我已经使用 Oracle 提供的 rpm 安装了 Oracle JDK 6。
我可以通过在.bashrc
.
export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
我注意到 Chrome 仍然使用 OpenJDK(因为我仍然需要链接插件)。
JAVA_HOME 和使用替代品有什么区别?