将 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-default
或 oracle-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的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将 Xcode 项目从 8 降级到 7? [关闭]