我一直在尝试找出运行 OpenJDK Java Runtime 作为我的 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
我已经使用Oracle提供的rpm安装了Oracle JDK 6。
我可以通过在.bashrc
.
export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH
我注意到 Chrome 仍然使用 OpenJDK(因为我仍然需要链接该插件)。
JAVA_HOME 和使用替代方案有什么区别?
答案1
备择方案
Alternatives 是一种工具,它将使用该工具控制下的链接来管理已安装软件的位置alternatives
。
通常,这些链接最终/etc/alternatives
通过在 目录下创建的中间链接进行管理。$PATH
/usr/bin
例子
$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Feb 24 17:36 /usr/bin/java -> /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Feb 24 17:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.0.fc19.x86_64/jre/bin/java
$JAVA_HOME
$JAVA_HOME
是可以使用环境变量来指示软件进行查看的地方。将其添加到$PATH
只是将 中的可执行文件添加$JAVA_HOME/bin
到您的 中$PATH
。这对于某些应用程序有时是必要的。
这两种机制是相关的,但可以一起使用,也可以相互独立,这实际上取决于 Java 应用程序更喜欢哪种机制。
我做什么
我通常用于$JAVA_HOME
某些 GUI 应用程序,但通常仅将其用于使用 Jetty、Tomcat 或 JBOSS 等的服务器安装。
对于这些安装,alternatives
在设置$JAVA_HOME
.当我可能需要安装多个 Java 时,我喜欢这样做。
替代方案确实允许您让某些工具使用一个 Java 安装,而让其他工具使用完全不同的 Java 安装。