2012-01-09 74 views
3

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

以下古怪然后遇到:

[email protected]:~$ 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的,但我想它无论如何收益:

[email protected]:~$ 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. 
[email protected]:~$ 

我知道我必须做一些愚蠢的,但我不知道什么,如果任何人可以给一个正确的方向,将非常赞赏的指针...

干杯

编辑:发现了一些关于我的Java发行版的'新'实例的其他奇怪的方面,它似乎不承认例如'模式'或'匹配'应该来自正则表达式导入耸耸肩

+3

我怀疑它的存在,但不是在你的PATH。 – 2012-01-09 15:04:13

+0

现在我会躲在角落里耻辱....不应该处理那个吗?任何想法为什么它不承认java.util.regex包? – 2012-01-09 15:13:26

+0

你在IDE中看到什么? – 2012-01-09 15:15:41

回答

3

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

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

+0

FS确实没有建立新的联系。你会碰巧有什么想法,为什么我的进口也失败了? – 2012-01-09 15:26:20

+0

@Bas:用Java版本,导入语句和错误消息以及类路径中的任何异常(如[Jakarta oro](http://jakarta.apache.org/oro/))打开一个新问题。 – 2012-01-09 15:31:58

+0

我会在早上这样做,除非我有某种形式的顿悟,因为我不想用愚蠢的问题'垃圾'这个董事会。 – 2012-01-09 15:33:55

2

首先要检查是否javac的安装尝试寻找该文件: 1.找到javac的 2或查找/ -name javac的

,你也可以在这个网站上如何安装instrucions检查在Ubuntu的Java(我假设你是在Ubuntu):

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

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

sudo的更新替代品--config java的

+0

它安装在/ usr/lib/jvm/java-6-openjdk/bin/javac中,但由于某种原因,安装程序没有在/ usr/bin中创建象本应该这样做的符号链接,至少我假设那是我决定'清理'我的系统之前的链接。 – 2012-01-09 15:05:27

+0

查看我最新的答案。 – Ivan 2012-01-09 15:06:42

+0

我最终手动改变了我的路径,以包含openjdk的安装目录,它至少意味着javac现在可以从任何地方再次访问,只需要在无法导入某些软件包的情况下将其他错误排序。 – 2012-01-09 15:15:33

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指示它用于开发无wde -devel包)。