apt-get install openjdk-7-jdk不安装javac。为什么?


24
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。为什么?

Answers:


10

只要安装成功完成且没有错误,您的系统上就会一个javac可执行文件。由于某种原因,它没有正确链接到/ usr / bin。sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac将创建该链接,并应解决您的问题。


6
如果未正确安装该怎么办。我在目录本身中看不到javac。
Veer Shrivastav '02

23

适当的Debian / Ubuntu的方式来配置,其javac指向由/usr/bin/javac是使用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

13

这就是我所做的。有效。

首先,我为Java 7安装了jdk,如下所示:

sudo apt-get install openjdk-7-jdk

那可能就足够了:通过运行检查并查看PATH中的javac javac -version

如果没有,请按照尼古拉斯的回答进行,除了不要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:

2

不知道这是否有帮助,但是对我有用。我遇到了这个问题,javac根本不在任何地方,可能是因为我只安装了jre。在jre修复后安装jdk

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.