为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼如林 2022-09-14 15:22:31
我创建了一个在Java版本8上开发的可执行JAR文件。双击时 JAR 文件已打开。但是由于 Oracle 应用程序仅支持 Java 6,因此我不得不安装 JRE 6,但在安装 JRE 6 之后,我的可执行 JAR 文件无法打开。我已经在路径环境变量中设置了 JDK 8 bin 路径。有解决这个问题的方法吗?为什么 JAR 文件在系统中的两个 Java 版本后无法打开?即使系统中安装了两个版本 6 和 8 的 Java,JAR 也应该打开。
查看完整描述

4 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

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

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

这有几个原因:

  1. 字节码是版本化的,JVM 会检查它是否支持在.class文件中找到的版本。

  2. 某些语言结构无法在以前版本的字节码中表示。

  3. 较新的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 上运行吗?


查看完整回答
反对 回复 2022-09-14
?
LEATH

TA贡献1936条经验 获得超7个赞

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


查看完整回答
反对 回复 2022-09-14
?
MMTTMM

TA贡献1869条经验 获得超4个赞

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


查看完整回答
反对 回复 2022-09-14
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

在短期内,
答案是肯定的。由于两个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。而且,我想用一个命令来做到这一点。让我们来做吧。

  1. 打开窗口电源外壳。

  2. 我更喜欢在我的配置文件中编写自定义Windows脚本,以便每当我打开外壳程序时都可以运行它。若要编辑配置文件,请运行以下命令: - $profile是指向配置文件的特殊变量。notepad.exe $profile

  3. 在配置文件中写入以下脚本并保存。

函数 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
}
  1. 关闭并重新启动电源外壳。

  2. 现在,您可以发出命令来设置正确的 PATH 和环境变量,然后启动 Eclipse IDE。myIDE

如您所见,有两个具有不同配置的功能。只需调用要从 Powershell 命令行启动的函数名称 ()。myIDE

如果任何问题,请在下面发表评论!


查看完整回答
反对 回复 2022-09-14
  • 4 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号