本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看<活动链接>
问题
我正在尝试使用 Notepad ++
作为我的 IDE
工具进行编辑,运行,编译等。
我已经安装了 JRE
环境,并将 path
环境变量设置到 .../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
的版本可能太旧或者太新。
- 我如何解决它?
- 我应该安装
JDK
,然后将path
环境变量设置为JDK
的而不是JRE
的吗? - 在
JDK
和JRE
的paht
环境变量有什么区别?
回答
回答1
下面显示的版本号描述了 class
文件兼容的 JRE
版本。
对应关系如下:
(来源:维基百科)
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
要解决实际问题,您应该尝试使用 Java
JRE
的较新版本来运行 Java
代码,或者在 Java
编译时指定目标参数,告诉编译器创建与之兼容的代码。
例如,为了生成与 Java 1.4
兼容的 class
文件,请使用以下命令行:
javac -target 1.4 HelloWorld.java
使用较新版本的 Java
编译器,您您可能会收到有关未设置 bootstrap
类路径的警告。更多关于此错误信息的说明,请参考文章:New javac warning for setting an older source without bootclasspath。
回答2
java.lang.UnsupportedClassVersionError
之所以会发生这种情况,是因为在编译时有一个较高版本的 JDK
,而在运行时有一个较低版本的 JDK
。
Project -> Properties -> Java Compiler
,启用项目设置,然后选择 Compiler Compliance Level
到 1.7
、1.6
或 1.5
,再构建并测试您的应用程序。
总结
(译者补充)
这个问题的根本在于是您的 Java
编译时和 Java
运行时的 Java版本不一致导致的,即:JDK 和 JRE 的版本不一致。
为了避免这种问题,最好确保编译环境和运行环境使用的版本完全一致。
翻译内容来源Stack Overflow:stackoverflow.com/questions/1…
今天的文章解决UnsupportedClassVersionError: Unsupported major.minor version | Java Debug 笔记分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/21794.html