我们可以在Windows上安装两个版本的Java JDK吗?

JTe*_*ker 6 java java-8

我创建了一个基于Java 8开发的可执行JAR文件。双击该JAR文件即会打开。但是由于Oracle应用程序仅支持Java 6,因此我必须安装JRE 6,但是在安装JRE 6之后,我的可执行JAR文件没有打开。

我已经在Path环境变量中设置了JDK 8 bin路径。有解决这个问题的方法吗?在系统中有两个Java版本后,为什么无法打开JAR文件?

即使系统中安装了Java的两个版本6和8,也应打开JAR。

Vis*_*tna 11

您面临着向后兼容性的问题。向后兼容意味着您可以在Java 8运行时上运行Java 6程序,但不能相反。

您可以在较高的配置上运行较低的配置,反之亦然

这有几个原因:

  1. 字节码已经过版本控制,并且JVM检查它是否支持在.class文件中找到的版本。
  2. 某些语言构造无法在字节码的早期版本中表达。
  3. 较新的JRE中有新的类和方法,不适用于较旧的类和方法。

如果确实需要(提示:不需要),则可以强制编译器将源视为Java的一个版本,并为另一个版本发出字节码,方法如下:

javac -source 1.8 -target 1.6 MyClass.java
Run Code Online (Sandbox Code Playgroud)

您可以使用JDK 1.8将代码编译为Java 1.6字节码。只需注意以下几点:

  • -source=1.8-target=1.6编译器选项
  • 如果使用Maven,请考虑拥有两个pom.xml文件和一个可选的父文件。

来源用Java 8开发的程序可以在Java 7上运行吗?