问题描述
The program 'javac' can be found in the following packages:
* openjdk-6-jdk
* ecj
* gcj-4.4-jdk
* gcj-4.6-jdk
* gcj-4.5-jdk
* openjdk-7-jdk
然后我运行sudo apt-get install openjdk-7-jdk
,一切正常。但是然后javac
仍然不存在,并且出现与上面相同的错误。与openjdk-6-jdk
相同。为什么?
最佳办法
只要安装完成且没有错误,您的系统上就会有一个javac可执行文件。由于某种原因,它没有正确链接到/usr /bin。 sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
将创建该链接,并应解决您的问题。
次佳办法
配置/usr/bin/javac
指向哪个javac
的正确Debian /Ubuntu方法是使用update-alternatives
命令。您可以以交互方式进行操作,然后从可用选项列表中进行选择:
sudo update-alternatives --config javac
或者,您可以在命令行上指定所需的选项:
sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac
由于它存储信息的方式,使用update-alternatives
与手动将/usr/bin/java
设置为您所选择的javac
的符号链接并不完全等效(而是认为更可取)。有关更多信息,请参见man update-alternatives
。
如果update-alternatives
不起作用,请运行以下命令,然后重试:
sudo ln -s /etc/alternatives/javac /usr/bin/javac
第三种办法
这就是我所做的。有效。
首先,我为Java 7安装了jdk,如下所示:
sudo apt-get install openjdk-7-jdk
那可能就足够了:通过运行javac -version
来检查PATH中的javac是否存在
如果不是,请按照尼古拉斯的回答进行,除了使用C:代替sudo update-alternatives --config javac
:
sudo update-alternatives --config java
然后在提示符下输入2
来选择Java 7:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
* 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode
Press enter to keep the current choice[*], or type selection number:
第四种办法
不知道这是否有帮助,但是对我有用。我遇到了这个问题,javac根本不在任何地方,可能是因为我只安装了jre。在jre修复后安装jdk。
sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk