java - 如何修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本

标签 java jvm incompatibility unsupported-class-version

我正在尝试使用 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)
       .........................................

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

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

最佳答案

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

报告的主要数字是:

Java SE 18 = 62,
Java SE 17 = 61,
Java SE 16 = 60, 
Java SE 15 = 59,
Java SE 14 = 58,
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 - 如何修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382929/

相关文章:

C: 为什么 &(void *) 和 void** 不兼容?

java - 如何修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本

java - 将 logging.properties 文件更改为 Slf4j 中的不同路径

java - 微软图: Daemon App Accesses Shared Calendars of only One User

jvm - Python 如何与 Spark 中的 JVM 交互

java - 如果我将 max -Xmx2048m 内存分配给具有 2GB RAM 的 64 位 Linux 机器的 Java 进程,会发生什么情况?

java - 为什么Java上默认的MaxMetaspaceSize很大?

javascript - 难倒 : IE8 Message: Expected identifier, 字符串或数字行:82 字符:1 代码:0

java - 如何从 Android 中的 Java 代码中引用 ImageView?

java - 查找数组中的最大值但必须小于某个值