Javac没有安装openjdk-6-jdk

时间:2012-01-09 14:56:55

标签: java javac openjdk

我周末一直在尝试一些不同的java编译器,并决定今天早上坚持使用javac。然后我继续清理由于我的测试而导致的混乱并删除了每一个java的痕迹,并做了一个新的&apt-get install install openjdk-6-jdk'在autoremove和autoclean之后。

然后遇到了以下奇怪之处:<​​/ p>

tarskin@5-PARA-11-0120:~$ 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
Try: sudo apt-get install <selected package>

我已经安装了openjdk,但我无论如何都试过它:

tarskin@5-PARA-11-0120:~$ sudo apt-get install openjdk-6-jdk
[sudo] password for tarskin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openjdk-6-jdk is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tarskin@5-PARA-11-0120:~$ 

我知道我必须做一些愚蠢的事情,但我不知道是什么,如果有其他人可以指出正确的方向,那将非常感激......

干杯

编辑:找到关于&#39; new&#39;的一些其他奇怪的方面。我的java发行版的一个例子,它似乎并没有认识到例如&#39;模式&#39;或者&#39; Matcher&#39;应该来自正则表达式导入 shrugs

4 个答案:

答案 0 :(得分:9)

TL; DR:安装java-1.6.0-openjdk-devel

我在Fedora上遇到过类似的问题,但是使用rpm -q -l列出(预安装的)java-1.6.0-openjdk包的内容,发现它不包含javac。它实际上只是JRE,而不是JDK,正如http://openjdk.java.net/install/上的安装说明所暗示的那样。为了获得javac,我安装了java-1.6.0-openjdk-devel。不完全是我所期望的,因为通常的打包约定会表明这是用于进行openjdk开发的包(即,在JVM上工作),而不是用它来开发程序。

基本上,openjdk的软件包命名不遵循标准的Java约定(需要在某处调用JRE),或者标准的Linux打包约定(使用-devel表示它用于开发软件包w / o -devel本身)

答案 1 :(得分:7)

根据http://openjdk.java.net/install/,仅安装OpenJDK-6 JRE

$ sudo apt-get install openjdk-6-jre

安装完整的 JDK

$ sudo apt-get install openjdk-6-jdk

答案 2 :(得分:3)

检查/etc/alternatives/usr/bin。其中一个或两个将包含已安装的旧Java版本的链接。当这些链接断开时,您可以收到上面的错误消息。

要在安装新版本的Java后更新链接,请尝试update-alternatives

答案 3 :(得分:2)

首先检查是否安装了javac尝试查找该文件: 找到javac 2.或者找到/ -name javac

你也可以在这个网站上查看有关如何在Ubuntu上安装java的说明(我想你是在ubuntu上):

http://openjdk.java.net/install/

您还可以查看: 对于pacakge安装的文件http://packages.ubuntu.com/hardy/i386/openjdk-6-jdk/filelist,你可以注意到应该安装javac。 也许你还需要运行: 打开终端并运行此命令在Ubuntu Oneiric上安装OpenJDK 7.0:

sudo update-alternatives --config java