我该如何在Fedora 17上使用OpenJDK编译Java 6?

4

我希望使用OpenJDK在Fedora 17上编译到Java 6。 然而,Fedora 17只提供了OpenJDK7而不是OpenJDK6。 我可以使用 -target 1.6 -source 1.6 来将代码从Java 7目标编译到Java 6,但是为了正确编译(避免警告:[选项]引导类路径未设置与-source 1.6一起使用),我还需要 -bootclasspath 指向Java 6 rt.jar文件。 但是OpenJDK7并未提供这个Java 6 rt.jar文件。 我应该如何在FC17上正确地进行Java 6编译?

3个回答

8

要在Fedora 16上安装Openjdk 1.6,请使用以下命令:

yum install java-1.6.0-openjdk --releasever=16 --nogpgcheck

(--nogpgcheck 是因为 yum 抱怨没有 Fedora 16 的密钥,也许有更好的解决方法)

但是这表明,java-1.7.0-openjdk 取代了 java-1.6.0-openjdk 并跳过了安装。它还显示需要安装包 xorg-x11-fonts-Type1。所以我执行了以下操作:

yum install xorg-x11-fonts-Type1

然后我使用了yum下载的openjdk包,但由于过时警告而无法安装。

rpm --nodeps -ihv /var/cache/yum/x86_64/16/updates/packages/java-1.6.0-openjdk-1.6.0.0-68.1.11.5.fc16.x86_64.rpm

(--nodeps用于覆盖过期警告)

现在我系统上既有java 1.6,又有java 1.7。Java 1.7是我的默认版本,而Java 1.6位于/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java中。

附注:安装1.7和1.6不会产生任何冲突。Fedora 17中移除1.6的原因是OpenJDK6将在2012年11月后不再获得安全更新


2
您需要安装OpenJDK 6。
我访问了 OpenJDK的安装指南页面,他们建议使用yum
然而,我验证了一下,在Fedora 17上并没有可用的OpenJDK 1.6版本(我也在运行FC17)。
yum list java*-openjdk
Loaded plugins: langpacks, presto, refresh-packagekit
Available Packages
java-1.7.0-openjdk.i686    1:1.7.0.5-2.2.1.fc17.9       updates
java-1.7.0-openjdk.x86_64  1:1.7.0.5-2.2.1.fc17.9       updates

这是在superuser.com上发布的与Fedora 17安装旧版openjdk 1.6相关的同样问题。被接受的答案基本上是手动下载和安装它。
如果你只想编译到Java 6,并且不一定要使用OpenJDK6,我可以帮助你逐步使用Oracle的JDK 1.6.0_33来完成。那是我在Fedora 17上使用的JDK。

谢谢。我更喜欢使用OpenJDK而不是Oracle,因为我支持开源。我找到了一个适用于FC17的OpenJDK6 RPM的第三方副本。它无法安装,因为它已被我安装的OpenJDK7所淘汰。所以我使用“rpm2cpio myopenJDK7.rpm | cpio -idmv”来提取文件,包括所需的rt.jar文件。如果我决定实际使用这个构建过程,我将不得不归档这个文件。这种方法是FC17的唯一解决方案吗?我希望能够安装OpenJDK6和OpenJDK7,并使用“alternatives --config java”在它们之间进行选择。 - Bruce

0

如果构建不存在,请在 Fedora Koji 上进行检查。在谷歌上搜索该软件包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接