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$
并得到了两个位置(这并不奇怪)。所以:
- 我只能使用
javac
手动安装 jdk 的路径,但我想直接使用没有路径的命令。这可能吗(如果可以,那么怎么做? - 好像我有两个 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