无法直接在终端上运行“java”、“javac”等命令以及两个版本的 jdk?

无法直接在终端上运行“java”、“javac”等命令以及两个版本的 jdk?

javac我通常使用 eclipse ,但我对自己说“让我们做一些幻想吧”,然后事情就发生了。我一开始尝试使用终端命令。我得到了

 The program 'javac' can be found in the following packages:

* default-jdk
* ecj
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
* openjdk-9-jdk-headless

Try: sudo apt install (selected package)

我已经从 oracle 网站(标准版)手动安装了 jre8 和 jdk8,并且已经在使用 eclipse 编写程序了。然后我输入java -version了答案

openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

这不是我手动安装的。然后我使用locate -br ^javac$并得到了两个位置(这并不奇怪)。所以:

  1. 我只能使用javac手动安装 jdk 的路径,但我想直接使用没有路径的命令。这可能吗(如果可以,那么怎么做?
  2. 好像我有两个 Java 版本。这会引起什么问题吗?如果会引起,请告诉我如何修复(我更愿意消除 openjdk9)

答案1

您可以通过运行以下命令来选择默认的 Java update-alternatives

$ sudo update-alternatives --config java

There are 5 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-9-oracle/bin/java              1091      auto mode
  1            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode
* 3            /usr/lib/jvm/java-9-oracle/bin/java              1091      manual mode
  4            /usr/lib/jvm/jdk1.8.0_91                         100       manual mode
  5            /usr/lib/jvm/jdk1.8.0_91/bin/java                100       manual mode

Press <enter> to keep the current choice[*], or type selection number: 

现在要更改版本,只需单击 即可type a number。对编译器执行相同操作:EnterEnter

sudo update-alternatives --config javac

并做出选择。现在你也可以使用更好的命令,update-java-alternatives

现在假设你有这些Java 包已安装:

java-9-oracle
java-8-openjdk-amd64
jdk1.8.0_91

我想要java-9-oracle版本,那么我只需运行:

sudo update-java-alternatives -s <java_name>

sudo update-java-alternatives -s java-9-oracle

这将创建指向我想要的 Java 版本的所有必要的链接。

现在在你放置的光中Java 语言在不同的地点我们将使用它update-alternatives --install来让它知道我们的 java 在哪里。

sudo update-alternatives --install /usr/bin/java java /usr/share/java/jdk1.8.0_121/bin/java 1

对于编译器来说也是javac一样

sudo update-alternatives --install /usr/bin/javac javac /usr/share/java/jdk1.8.0_121/bin/javac 1

来源: man update-java-alternatives

相关内容