我想在 Fedora 17 上使用 OpenJDK 编译到 Java 6。Fedora 17 有 OpenJDK7,而不是 OpenJDK6。我可以使用 -target 1.6 -source 1.6 从 Java 7 编译到 Java 6,但要正确执行(避免警告:[options] bootstrap class path not set with -source 1.6),我还需要 -bootclasspath 指向到 Java 6 rt.jar 文件。但是 OpenJDK7 不提供这个 Java 6 rt.jar 文件。如何在 FC17 上正确编译 Java 6?
3 回答
要从 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
.
PS:同时安装1.7和1.6不会有任何冲突。从 Fedora 17 中删除 1.6 的原因是,OpenJDK6在 2012 年 11 月之后将不再获得安全更新。
您将需要 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。
如果构建不存在,请检查 fedora koji。谷歌它并搜索包。