将 java 从版本 8 降级到 7

Posted

技术标签:

【中文标题】将 java 从版本 8 降级到 7【英文标题】:Downgrade java from version 8 to 7 【发布时间】:2014-06-12 20:58:50 【问题描述】:

我在 Ubuntu 上安装了 Oracle 的 Java 1.8,因为我认为它是最好的,最新版本与以前的版本兼容。但事实并非如此。 javac 1.8 生成的字节码只能在 java-8-oracle 上运行,scala 不运行。

在升级之前,我使用的是 java-7-openjdk,一切都很好。尽管 我可以使用sudo update-alternatives --config java 选择我的旧虚拟机,但我还需要能够选择旧编译器。 我该怎么做?

【问题讨论】:

docs.oracle.com/javase/8/docs/technotes/guides/install/… 【参考方案1】:

使用-target 标志为早期版本生成字节码。例如。 javac -target 1.5 FooBar.java.

无需降级。

【讨论】:

您的建议给出了“javac:目标版本 1.7 与默认源版本 1.8 冲突”。 然后用-source 1.7修改源兼容性。 更好,但我仍然收到“警告:[options] bootstrap class path not set with -source 1.7”。但至少我现在可以启动程序了,谢谢。 请注意,这不会阻止您使用仅在 Java SE 8 中可用的 API。您需要一些额外的步骤:docs.oracle.com/javase/8/docs/technotes/tools/unix/… 因此,我建议使用您实际定位的 JDK .【参考方案2】:

至少对于 Oracle 的 JDK(不确定 OpenJDK):安装 oracle-java7-set-defaultoracle-java8-set-default 软件包,具体取决于您希望将哪个 java 版本作为系统的默认版本。

您可以从:http://ppa.launchpad.net/webupd8team/java/ubuntu(包括实际的 Oracle JDK)获取它,请参阅:https://launchpad.net/~webupd8team/+archive/java

或者,您可以设置 PATH 和 JAVA_HOME 环境变量,例如在 /etc/环境中

也就是说,当您编译时,您可以将源和目标级别指定为 1.7,这在使用 JDK 8 时也会生成与 Java SE 7 兼容的字节码。但请注意,它不会检查您是否使用了一些不可用的 API在 Java SE 7 中。

出于这个原因,我建议始终使用您所针对的 JDK 版本,而不是进行一些交叉编译(这需要 some additional extra steps 才能正确执行)。

但请注意,您可以在系统上安装多个 JDK 版本。 IDE 通常让您选择在开发过程中使用哪一个。

【讨论】:

【参考方案3】:

    java_home 环境变量设置为旧版本并使用它编译Java 文件。确保路径变量中的java.exe 是早期版本。

    编译时使用-target标志。

【讨论】:

以上是关于将 java 从版本 8 降级到 7的主要内容,如果未能解决你的问题,请参考以下文章

苹果 4s如何从8.0版本降级到7.12版本?

将 iOS 项目部署目标从 8 降级到 7

有没有办法将 Xcode 项目从 8 降级到 7? [关闭]

如何将 Xcode 从 7.0 版本降级到 6.4?

如何从 Ruby 1.9.2 降级到 Ruby 1.8.7 以运行 Rails 2.0.2

如何在 MACOS 上将 Java 从 9 降级到 8。 Eclipse 未与 Java 9 一起运行