我周末一直在尝试一些不同的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 。
答案 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