gpt4 book ai didi

java - 'alternatives' 真的比符号链接(symbolic link)和 $PATH 更适合管理 JDK 吗?

转载 作者:IT王子 更新时间:2023-10-29 00:55:31 26 4
gpt4 key购买 nike

我最近刚刚升级到 Fedora 16(从 fedora 12),并且已经阅读/被告知,与其通过使用简单的符号链接(symbolic link)并将我的 $PATH 设置为该符号链接(symbolic link)来设置不同的 JDK,我应该使用备选工具。

我不明白的是替代方案如何更好地管理您的 jdk,当您似乎必须运行时:alternatives --config 不仅适用于“java”,还适用于所有支持工具(javac、javaws、jstack , ETC)。与以下相比,这似乎很悲惨:

(假设 $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 实用程序都将指向同一版本。

  1. 将您的新 jdk 解压缩到您的正常 java 位置 (/opt/local/java/jdk_1.X_XX)
  2. 符号链接(symbolic link)您当前的 jdk

    ln -s /opt/local/java/jdk_1.X_XX current
  3. 在 ~/.bash_profile 或 ~/.bashrc 添加

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

    PATH=$JAVA_HOME/bin:$PATH
    export PATH
  4. 现在,如果您需要切换 jdk,您只需切换符号链接(symbolic link)即可

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

Ubuntu 专用

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

关于java - 'alternatives' 真的比符号链接(symbolic link)和 $PATH 更适合管理 JDK 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com