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

我创建了一个在Java版本8上开发的可执行JAR文件。双击时 JAR 文件已打开。但是由于 Oracle 应用程序仅支持 Java 6,因此我不得不安装 JRE 6,但在安装 JRE 6 之后,我的可执行 JAR 文件无法打开。

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

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


呼如林
浏览 189回答 4
4回答

月关宝盒

您正面临向后兼容性问题。向后兼容性意味着您可以在 Java 8 运行时上运行 Java 6 程序,但不能反过来。您可以在较高配置上运行较低配置,反之亦然这有几个原因:字节码是版本化的,JVM 会检查它是否支持在.class文件中找到的版本。某些语言结构无法在以前版本的字节码中表示。较新的JRE中有新的类和方法,它们不适用于较旧的类和方法。如果你真的非常非常想要(提示:你不想要),你可以强制编译器将源代码视为Java的一个版本,并为另一个版本发出字节码,使用类似这样的东西:javac -source 1.8 -target 1.6 MyClass.java您可以使用 JDK 1.8 将代码编译为 Java 1.6 字节码。只需注意以下事项:-source=1.8和编译器选项-target=1.6如果使用 Maven,请考虑使用两个 pom.xml文件,其中包含一个可选的父文件。来源:使用 Java 8 开发的程序可以在 Java 7 上运行吗?

LEATH

大家好 感谢您的回复。我保留了java6并重新安装了java8,现在表单和jar都在工作!

MMTTMM

我不确定这个解决方案是否有效。尝试运行命令 java -版本,并查看它是否返回 java 6 或 8 路径。还要尝试将 JDK 8 的路径作为JAVA_HOME变量,并将其添加到类似 path=%JAVA_HOME%/bin 的路径中,看看它是否有效。如果您将 Java 6 作为 Java 版本,请尝试使用上述方法,然后安装 JRE 6

陪伴而非守候

在短期内,答案是肯定的。由于两个JDK文件都下载为jar fils,因此可以下载两个jar文件。两个java版本后没有打开的原因是@Elliott说的:“在系统中是Java 6无法运行Java 8编译的代码,你应该会得到一个错误。这是千真万确的,但问题是如何在一台机器中使用多个版本的JDK。然后我们必须转向长期,棘手的事情是管理这些多个JDK和IDE。如果我只是使用 Eclipse 来编译我的代码,那就太小菜一碟了,因为 IDE 允许我配置多个版本的 Java 运行时。不幸的是(或幸运的是),我必须使用命令行/shell 来构建我的代码。因此,重要的是,我在 PATH 和其他相关环境变量(如JAVA_HOME)中存在正确版本的 JDK。每次我想在 JDK 之间切换时手动修改环境变量都不是一件容易的事。但是,多亏了Windows强力外壳,我能够编写一个可以为我完成繁重工作的脚本。基本上,您要实现的是设置 PATH 变量以添加 Java bin 文件夹并设置JAVA_HOME环境变量,然后启动正确的 Eclipse IDE。而且,我想用一个命令来做到这一点。让我们来做吧。打开窗口电源外壳。我更喜欢在我的配置文件中编写自定义Windows脚本,以便每当我打开外壳程序时都可以运行它。若要编辑配置文件,请运行以下命令: - $profile是指向配置文件的特殊变量。notepad.exe $profile在配置文件中写入以下脚本并保存。函数 myIDE{ $env:Path = “C:vraajavajdk7bin;” $env:JAVA_HOME = “C:vraajavajdk7” C:vraiideeclipseeclipse set-location C:vraaworkspacemyproject play }function officeIDE{ $env:Path  = "C:vraajavajdk6bin;"$env:JAVA_HOME = "C:vraajavajdk6"C:officeeclipseeclipse }关闭并重新启动电源外壳。现在,您可以发出命令来设置正确的 PATH 和环境变量,然后启动 Eclipse IDE。myIDE如您所见,有两个具有不同配置的功能。只需调用要从 Powershell 命令行启动的函数名称 ()。myIDE如果任何问题,请在下面发表评论!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java