【问题标题】:Ubuntu: change the path from OpenJDK 6 to Oracle JDK 7Ubuntu:将路径从 OpenJDK 6 更改为 Oracle JDK 7
【发布时间】:2014-02-02 14:33:06
【问题描述】:

下载最新的 .tar 文件后,我运行 tar zxvf jdk-7u45-linux-x64.tar.gz 来提取 java 文件。

.bashrc文件(vi ~/.bashrc)中设置路径如下;

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/bin/java
export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_45/bin
export JDK_HOME=/usr/lib/jvm/jdk1.7.0_45    
export JRE_HOME=/usr/lib/jvm/jre1.7.0_45

现在,运行命令java -version 或哪个java,java PATH 仍然指向旧的java 版本(java version "1.6.0_27")。

我知道默认的 ubuntu 采用 OpenJDK 路径。我必须将路径更改为最新版本作为我在.bashrc 文件中设置的系统环境变量。

另外,sudo update-alternatives --config java

Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      manual mode
* 3            /usr/lib/jvm/jdk1.7.0_45/bin/java          1         manual mode
Press enter to keep the current choice[*], or type selection number: 3

【问题讨论】:

    标签: java classpath ubuntu-10.04


    【解决方案1】:

    在终端中运行命令:

    sudo update-alternatives --config java 
    

    从命令行设置您想要使用的 JRE 版本,就像 java 的可用版本安装一样:1.6 和 1.8
    见下文:

    并且选择 1 个选项并设置 java-6 版本,因为当前选项已在 java-8 中设置。

    【讨论】:

      【解决方案2】:

      运行

      sudo  update-java-alternatives --list
      

      按名称和目录列出机器上的所有 Java 安装,然后运行

      sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
      

      选择要使用的 JRE/JDK。

      如果你想为每个 Java 任务使用不同的 JDK/JRE,你可以运行 update-alternatives 来一次配置一个 java 可执行文件;你可以运行

      sudo  update-alternatives --config java[Tab]
      

      查看可以配置的 Java 命令(java、javac、javah、javaws 等)。然后

      sudo  update-alternatives --config [javac|java|javadoc|etc.]
      

      将该 Java 任务/命令与特定的 JDK/JRE 相关联。

      您可能还需要为某些应用程序设置 JAVA_HOME:从this answer 可以使用

      export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
      

      对于 JRE,或

      export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
      

      对于 JDK。

      【讨论】:

        【解决方案3】:

        Ubuntu(和 Debian)有一种优雅的方式来管理像 jdk 这样的库。

        使用update-alternatives,您可以在同一系统上管理多个jdk 库,选择您想要使用的作为主要库。

        首先你必须为新安装的 jdk 安装一个替代方案:

        sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1
        sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac" 1
        

        通过这种方式,您可以安装新的jdk 作为原始jdk 的替代品。 然后你可以选择你想使用哪一个:

        sudo update-alternatives --config java
        sudo update-alternatives --config javac
        

        系统会要求您选择要使用的 jdk,在我的系统上:

        There are 2 choices for the alternative java (providing /usr/bin/java).
        
          Selection    Path                                           Priority   Status
        ------------------------------------------------------------
          0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      auto mode
          1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode
        * 2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
        
        Press enter to keep the current choice[*], or type selection number: 
        

        您可以随时使用--list 选项查看javajavac 的替代方案:

        sudo update-alternatives --list java
        sudo update-alternatives --list javac
        

        要查看更多选项,请查看 update-alternatives 手册页。

        【讨论】:

        • 同时运行 sudo update-alternatives --install "/usr/bin/javac" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1 update-alternatives:错误:替代链接 /usr/bin/javac 已由 javac 管理。
        • @DevendraSingh 你有一个错字:不要混淆javacjava 你有“/usr/bin/javac”指向“/usr/lib/jvm/jdk1.7.0_45/bin /java"
        • 我仍然无法更改路径。
        • 在您的问题中发布update--alternatives --list java的输出
        • 这似乎不起作用我这样做后得到“/usr/bin/java 没有这样的文件或目录”。请帮助
        【解决方案4】:

        尝试在终端中输入以下内容。

        sudo update-alternatives --config java

        输出将是一些选项,您可以选择安装到您计算机上的正确选项。

        【讨论】:

          【解决方案5】:

          你可能想这样做

          export PATH=/usr/lib/jvm/jdk1.7.0_45/bin:$PATH
          

          OpenJDK 可能仍在路径中,Linux 将使用它找到的第一个 java

          如果不需要,建议卸载 OpenJDK。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-21
            • 2018-10-26
            • 2017-08-15
            • 2014-08-14
            • 1970-01-01
            • 2012-03-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多