在 ubuntu 中获取不同版本的 Java

在 ubuntu 中获取不同版本的 Java

当我运行 java -version 和 javac -version 时,我得到了不同的 java 版本。对于 java-version,我得到了

java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK Server VM (build 24.65-b04, mixed mode


javac -version
javac 1.6.0_33`

我在 ~/.profile 中的环境变量路径是: export PATH=${PATH}:/usr/lib/jvm/java-7-openjdk-i386/

编辑

哪个java:/usr/bin/java

哪个 javac/usr/bin/javac

答案1

从您的编辑来看,您似乎openJDK安装了两个实例。如果您希望它们匹配,您有两个选择:

  1. 卸载你不需要的那个。例如,如果你想要 open-jdk7 而不是 open-jdk6,请sudo apt-get remove --purge openjdk-6-*

  2. 更新 java 使用的替代方案sudo update-alternatives --config java,然后选择您想要的方案。如果您需要同时使用两种 JDK,这是您的最佳选择,因为每次需要切换时,您都可以这样做

答案2

在 Fedora 上,我可以使用以下命令修复该错误:

sudo update-alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-1.b14.el7_2.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.101-2.6.6.1.el7_2.x86_64/jre/bin/java
   3           /usr/java/jdk1.8.0_91/jre/bin/java

然后删除旧版本的 Java:

sudo yum remove java-1.7*

然后我为每个获得相同版本的Java:

答案3

如果Java 语言javac显示不同的版本,那么您可以轻松地将它们设置为正确或相同的版本

步骤1

sudo update-alternatives --config java

输出 :

    Selection    Path                                          Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode

这将显示以下结果,start(*) 表示javac您的系统正在使用的版本。您可以通过选择所需的版本来更改它。

第2步

sudo update-alternatives --config java

输出 :

      Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

现在你可以再次选择要运行的版本Java 语言

这样您就可以确保 java 和 javac 具有相同的版本。

相关内容