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

apt-get install openjdk-7-jdk 没有安装 javac。为什么?
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。为什么?

答案1

javac指向的正确 Debian/Ubuntu 配置方法/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符号链接。请参阅javacman update-alternatives了解更多信息。

如果update-alternatives不起作用,请运行此命令并重试:

sudo ln -s /etc/alternatives/javac /usr/bin/javac

答案2

这是我做的。它有效。

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

sudo apt-get install openjdk-7-jdk

这可能就足够了:通过运行检查 javac 是否在你的 PATH 中javac -version

如果没有,那么请按照尼古拉斯的回答进行操作,但不要sudo update-alternatives --config javac使用这个:

sudo update-alternatives --config java

并在提示符下输入以下内容选择 Java 7 2

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:

答案3

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

答案4

不确定这是否有用,但对我来说很管用。我遇到了这个问题,javac根本就不存在,可能是因为我只安装了杰瑞. 安装开发环境之后杰瑞修复。

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk

然后按照提示设置配置:

sudo update-alternatives --config java
sudo update-alternatives --config javac

然后你可以使用以下命令检查配置是否正确:

java -version
javac -version

相关内容