本文正在参加「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