Javac 未与 openjdk-6-jdk 一起安装

标签 java javac openjdk

周末我一直在尝试一些不同的 java 编译器,今天早上我决定坚持使用 javac。然后,我继续清理由我的测试造成的困惑,并删除了 java 的最后痕迹,并在自动删除和自动清理后重新执行了“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>

我已经安装好了 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:~$ 

我知道我一定是在做一些愚蠢的事情,但我不知道是什么,如果有人能给出正确方向的指示,我将不胜感激......

干杯

编辑:发现关于我的 Java 发行版的"new"实例的其他一些奇怪的方面,它似乎无法识别例如应该来自正则表达式导入的“模式”或“匹配器”耸肩.

最佳答案

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 表示它用于开发没有 -devel 本身的包) .

关于Javac 未与 openjdk-6-jdk 一起安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790324/

相关文章:

java - SQLite 插入时出现空指针异常

Java部署服务器程序

java - 父类中的方法如何调用子类中的方法?

java - NoClassDefFoundError : sun/security/util/Length, 我应该如何修复它

java - JVM 选项的完整列表

java - 如何开始使用 Oracle 的 Nashorn JS 引擎进行编码,它何时会取代 OpenJDK 中的 Rhino?

java - 如何在非公共(public)类中测试方法?我认为在公共(public)类中测试私有(private)或 protected 方法是不一样的

java - 如何在 ant build 创建的 jar 的错误堆栈跟踪中获取源代码行号?

java - javap -c 对类文件做了什么?

java - 是否有任何 Java 编译器利用 OSGi 环境而不是使用类路径?