如何修复java.lang.UnsupportedClassVersionError:不支持的主版本。次版本

2024-05-20 12:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图使用Notepad++作为我的一体化工具编辑、运行、编译等

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

当我在记事本++中运行“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)
       .........................................

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

  1. 我该怎么修?
  2. 我应该安装JDK,并将路径变量设置为JDK而不是JRE吗?
  3. JRE或JDK中的PATH变量有什么区别?

Tags: 工具路径版本目录编辑langworldbin
3条回答

在Eclipse中,我只是转到菜单commandWindow->;Preferences->;Java->;Compiler然后将“Compiler compliance level”设置为1.6。

显示的版本号描述了类文件兼容的JRE的版本。

报告的主要数字是:

Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:Wikipedia

要解决实际问题,您应该尝试使用较新版本的Java JRE运行Java代码,或者向Java编译器指定目标参数,以指示编译器创建与较早版本Java兼容的代码。

例如,要生成与Java 1.4兼容的类文件,请使用以下命令行:

javac -target 1.4 HelloWorld.java

对于较新版本的Java编译器,您可能会收到有关未设置引导类路径的警告。有关此错误的详细信息,请参阅博客文章New javac warning for setting an older source without bootclasspath

java.lang.UnsupportedClassVersionError发生的原因是编译时JDK较高,运行时JDK较低。

相关问题 更多 >