当前位置: 首页 > 知识库问答 >
问题:

Java/Eclipse:从JRE切换。6至。7.

杜弘伟
2023-03-14

我在c:/program files/java中安装了JRE 1.6和1.7(以及JDK)/

我先安装了1.7,然后又安装了1.6。我使用Eclipse作为我的IDE——请注意,我是Java新手。

当我想切换到1.6时,我会转到“运行配置”(在Eclipse中)并选择替代JRE,选择1.6并单击应用。但当我尝试运行一个简单的HelloWorld程序时,我收到了以下警报:

找不到主类:HelloW。程序将退出。

在控制台中,我发现了以下错误:

java.lang.UnsupportedClassVersionError: HelloW : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

如果我切换回JRE 1.7,一切又能正常工作了。我怎样才能正确地切换到1.6并使一切正常工作?

共有2个答案

万高畅
2023-03-14

这里发生的错误是,您已经用java 1.7编译了该文件,并试图用java 1.7运行它。

我建议在你将JRE更改为1.6后重新编译代码文件,即重建项目,然后运行项目。

根据JRE政策,如果我们在新版本上编译了项目,然后尝试在旧版本上运行它,它将不会运行并引发主要/次要版本错误。因此,请在JRE 1.6上重新编译它,然后运行。

宇文俊风
2023-03-14

您的HelloW类是为1.7编译的,因此它不会在1.6上运行。您必须使用旧版本重新编译代码

在eclipse中,您可以右键单击项目,然后转到“属性”,然后单击“Java编译器”。选中“启用特定于项目的设置”,并按如下方式更改JDK兼容性:

 类似资料:
  • 问题内容: 我在理解Java JRE的一些基本知识时遇到了麻烦。 我需要在嵌入式系统中运行Java代码,为此,我需要在Linux内核中安装最小的Java运行时环境,即执行Java二进制文件所需的最小程序包。我认为仅使用JVM是不可能的(JRE包是必需的,在这里我错了吗?) 事情是,看着Debian仓库的时候我也不太明白软件包之间的差异,和。Java程序将仅与前者一起运行吗?还是需要其中三个? 这是

  • 问题内容: 我刚刚将Python3解释器添加到Sublime,并且以下代码停止工作: 我收到以下异常: 我发现这很奇怪,因为据我所知Python3应该在任何地方都支持utf-8。而且,相同的精确代码在Python2.7上可以正常工作。我已经读过有关添加环境变量的信息,但是我尝试了- 无济于事(但是,在OS X Mavericks中添加环境变量似乎并不容易,所以也许我在添加变量时做错了什么? /et

  • 问题内容: 我有一个需要在Windows机器上打开的基于Java 6的Java Web Start应用程序。机器已安装JRE 7,并将JRE 6手动复制到该文件夹中。问题是,无论何时我想打开JWS应用程序,它都将使用Java 7打开。即使我使用JRE 6中的可执行文件,某些属性仍然引用JRE 7文件(我通过使用进行了验证。如何强制JRE 6仅用于此应用? 问题答案: 我有一个基于Java 6的Ja

  • 问题内容: 我需要为Java 6编译一个项目,以与Java 6或7一起使用(我无法 升级自己一生中的所有计算机)。我一直在搜寻, 发现了一些有用的 东西,但是我对java还是很陌生-我不太了解如何使用 提出的替代方法(ant-build,Maven,javac)。 我的程序未使用Java 6中没有的任何API方法,但 确实使用了另一个外部.JAR的API(它是 示例程序的基本插件) 是否有使用Ec

  • 目前我有一个需要JRE1.8的Java项目。ANT构建脚本用于使用任务编译项目,如下所示: 当运行在使用JRE1.8的计算机上时,该脚本可以很好地工作,但是我现在希望在将JRE1.7设置为默认的计算机上运行该脚本。JRE1.8在此计算机上的目录中可用,运行时会列出安装。 提前道谢!

  • 我对Ubuntu 14.04上的JRE有问题。 编辑:计算机没有连接到Internet,所以我使用apt脱机方法(我在安装eclipse时已经这样做了)。 我正在尝试运行eclipse cdt,当我播放它时,我收到以下消息: 为了运行Eclipse,必须提供Java运行时环境(JRE)或Java开发工具包(JDK)。在当前路径中搜索以下位置后,未找到Java虚拟机:/usr/lib/eclipse