相关疑难解决方法(0)

如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本

我正在尝试使用Notepad ++作为我的一体化工具编辑,运行,编译等.

我安装了JRE,并且已将路径变量设置为.../bin目录.

当我在Notepad ++中运行"Hello world"时,我收到以下消息:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................
Run Code Online (Sandbox Code Playgroud)

我认为这里的问题是版本问题; 某些版本的Java可能是旧的或太新的.

  1. 我如何解决它?
  2. 我应该安装JDK,并将我的路径变量设置为JDK而不是JRE吗?
  3. .../binJRE或JDK中的变量有什么区别?

java jvm incompatibility unsupported-class-version

1532
推荐指数
25
解决办法
182万
查看次数

不支持的major.minor版本51.0,但一切都设置为JDK 1.6

我有一个Maven Eclipse应用程序,我正在尝试使用以下命令运行命令提示符:

java -cp target/classes;"target/dependency/*" com.example.Main
Run Code Online (Sandbox Code Playgroud)

不幸的是,它抛出一个错误:

UnsupportedClassVersionError : unsupported major.minor version 51.0
Run Code Online (Sandbox Code Playgroud)

我做了一些挖掘,发现它与在较新版本的JDK上编译的应用程序有关,而不是它运行的JRE.显然,51意味着它是为1.7而构建的,但我的计算机上没有JDK 7 ......

所以我确保一切都设置为1.6版:

root包含的system.properties文件

java.runtime.version=1.6
Run Code Online (Sandbox Code Playgroud)

添加了maven属性

<java.version>1.6</java.version>
Run Code Online (Sandbox Code Playgroud)

在我的pom.xml中指定了maven编译器插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我使用返回的命令java -version检查了我的java版本

Java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-bit Server VM (build 20.13-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

设置maven-compiler-plugin后,我的项目更新导致Eclipse自动将编译器级别设置为1.6,项目方面级别为1.6,并将JavaSE-1.6 jre系统库添加到我的项目中.

所以我完全不知道这个JDK 1.7的来源.我从来没有在这台计算机上安装JDK 1.7 ...

另外,最初,maven-compiler-plugin不存在所以它是用1.5构建的.但我做了一个mvn clean install,然后一个mvn package,然后在所有设置调整后再次尝试该命令,它仍然抛出相同的错误.

java unsupported-class-version

33
推荐指数
2
解决办法
7万
查看次数