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

Tra*_*ebb 27 apt java

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
Run Code Online (Sandbox Code Playgroud)

然后我运行sudo apt-get install openjdk-7-jdk,一切正常。但是javac仍然不存在,我得到了与上面相同的错误。与openjdk-6-jdk. 为什么?

小智 24

适当的Debian / Ubuntu的方式来配置,其javac指向由/usr/bin/javac是使用update-alternatives命令。您可以交互方式执行此操作,并从可用选项列表中进行选择:

sudo update-alternatives --config javac
Run Code Online (Sandbox Code Playgroud)

或者,您可以在命令行上指定所需的选项:

sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac
Run Code Online (Sandbox Code Playgroud)

由于它存储信息的方式, usingupdate-alternatives与手动创建/usr/bin/java指向您javac选择的符号链接并不完全等效(而是被认为更可取)。有关这man update-alternatives方面的更多信息,请参阅。

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

sudo ln -s /etc/alternatives/javac /usr/bin/javac
Run Code Online (Sandbox Code Playgroud)


小智 14

这就是我所做的。有效。

首先,我为 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:
Run Code Online (Sandbox Code Playgroud)


小智 12

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

  • 如果没有正确安装怎么办。我在目录本身中没有看到 javac 。 (7认同)