【java.lang.UnsupportedClassVersionError】版本不一致出错

简介:

这种错误的全部报错信息:

复制代码
复制代码
 1 java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0
 2  at java.lang.ClassLoader.defineClass1(Native Method)
 3  at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
 4  at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
 5  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
 6  at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
 7  at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
 8  at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
 9  at java.security.AccessController.doPrivileged(Native Method)
10  at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
11  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
12  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
13  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
14 Exception in thread "main" 
复制代码
复制代码

  看报错信息,是因为使用的jar包版本不对。这个51.0是什么呢?

  JDK不同的版本,编译出的class文件是不同的。通过查看分析class文件前几个字节,可以找到对应的关系,详细的参考官方,细微的版本之间可能有差异:

复制代码
复制代码
1 J2SE 7 = 51 (0x33 hex),
2 J2SE 6.0 = 50 (0x32 hex),
3 J2SE 5.0 = 49 (0x31 hex),
4 JDK 1.4 = 48 (0x30 hex),
5 JDK 1.3 = 47 (0x2F hex),
6 JDK 1.2 = 46 (0x2E hex),
7 JDK 1.1 = 45 (0x2D hex).
复制代码
复制代码

  观察一下报错截图:

  原来我的Eclipse的JDK是1.6的,但是jar包明确要求需要1.7的,当然会出错了!

  那么,如何改正呢?下载1.7版本的JDK就不说了。

  右键点击项目工程,Properties

  点击JRE library

  修改JDK版本

  最后编译成功!


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6286617.html,如需转载请自行联系原作者

相关文章
|
4月前
|
Java 中间件 测试技术
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
|
4月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
1月前
|
Java Linux Windows
如何查看已安装的 Java 版本
要查看已安装的 Java 版本,打开命令提示符或终端,输入 `java -version`,回车后即可显示当前系统中 Java 的版本信息。
110 1
|
1月前
|
Ubuntu Java Linux
如何检查 Java 版本是否兼容
要检查Java版本是否兼容,可在命令行输入“java -version”查看当前安装的Java版本,然后对比目标应用所需的Java版本,确保其满足要求。
54 1
|
2月前
|
缓存 Java Maven
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
55 1
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
|
2月前
|
Java Docker 容器
java版本学习网站又添加了一个libgdx模块
java版本学习网站之前添加了docker,想了想还是再把libgdx添加进去吧。
32 3
|
2月前
|
Java Maven Spring
查看springboot版本支持最高的java版本
截至最近更新,Spring Boot 3.0及以上版本支持的最高Java版本为Java 17。鉴于技术的不断演进,建议直接参考Spring Boot的官方文档获取最准确的支持信息,因为这些版本兼容性可能会随着新版本的发布而有所变化。选择与你的Spring Boot版本相匹配的Java版本,可以确保充分利用框架特性,同时保证项目的稳定性和前瞻性。
79 0
|
3月前
|
Java
java版本详解
java版本详解
|
2月前
|
Java Linux Maven
用sdkman在linux上管理多个java版本
本文介绍了如何在Linux上使用SDKMAN来管理多个Java版本,包括安装SDKMAN、验证安装、列出和安装不同版本的JDK、Maven和Gradle,以及如何切换使用不同版本。
68 0
|
3月前
|
Java API 开发工具
Java不同的版本
Java不同的版本Java不同的版本
43 4