Javac没有安装openjdk-6-jdk

Bas*_*sen 3 java openjdk javac

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

然后遇到以下怪异:

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

我已经安装了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:~$ 
Run Code Online (Sandbox Code Playgroud)

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

干杯

编辑:找到关于我的java发行版的"新"实例的一些其他奇怪的方面,它似乎没有认识到例如应该来自正则表达式导入耸肩的 '模式'或'匹配器' .

Chr*_*tin 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本身).


小智 7

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

$ sudo apt-get install openjdk-6-jre
Run Code Online (Sandbox Code Playgroud)

要安装完整的JDK:

$ sudo apt-get install openjdk-6-jdk
Run Code Online (Sandbox Code Playgroud)