java – 管理JDK的’替代’真的比Symlink和$PATH更好吗?

我刚刚升级到Fedora 16(来自fedora 12),并且已经读过/被告知通过使用简单的符号链接并将我的$PATH设置为该符号链接而不是设置不同的JDK,我应该使用替代工具.

我不明白的是,当你似乎必须运行时,替代方案更好地管理你的jdk:alternative –config不仅适用于’java‘,还包括所有支持工具(javac,javaws,jstack等) .与以下相比,这看起来很悲惨:

(假设$PATH = / opt / local / java / current / bin:…)

rm /opt/local/java/current
ln -s /path/to/unpacked/jdkX /opt/local/java/current

所以我的问题是:

为什么我认为替代方案是在较新版本的Fedora中管理Java工具的正确方法,因为完全切换JDK似乎要麻烦得多?我刚被告知可怜的信息,还是我遗漏了一些关于替代品的重要信息?

(注意:如果替代品在某种程度上明显更好,请随意残酷.我知道我对这个工具一无所知)

最佳答案
一般

如果你知道你只需要换掉一个或两个工具(例如:java和javac),那么替代方案似乎就好了,因为它是管理应用程序版本的预期方式.

但是,如果您使用的多个开发工具可能需要JAVA_HOME或JDK_HOME值集,或者您不知道该工具可能调用哪个jdk实用程序,则似乎将您的jdk路径导出到$JAVA_HOME,并且将它添加到$PATH是一个更简单的方法.它可能不是“正确的”方式,但在java版本之间切换更快,更透明,因为您知道所有jdk实用程序都将指向同一版本.

>将您的新jdk解压缩到普通的java位置(/opt/local/java/jdk_1.X_XX)
>符号链接你当前的jdk

ln -s /opt/local/java/jdk_1.X_XX current

>在〜/ .bash_profile OR~ / .bashrc中添加

JAVA_HOME=/opt/local/java/current
export JAVA_HOME
JDK_HOME=$JAVA_HOME
export JDK_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

>现在,如果您需要切换jdks,您只需交换符号链接即可

rm /opt/local/java/current
ln -s /opt/local/java/new_jdk_directory current

Ubuntu具体

似乎在UBUNTU上已经用update-java-alternatives解决了这个问题,这将更新给定运行时或开发工具包(JRE / JDK)的所有替代方案.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...