当前位置: 首页>>技术教程>>正文


apt-get安装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相同。为什么?

最佳办法

只要安装完成且没有错误,您的系统上就会有一个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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10834.html,未经允许,请勿转载。