jar包JDK版本降级

jar包JDK版本降级


当我们引入的jar包和本地的jdk版本有冲突的情况下,会报一下错误:

java.lang.UnsupportedClassVersionError:com/sun/tools/javac/Main : 
Unsupported major.minor version 51.0  //证明这个jar包是jdk7编译的,和本地jdk不兼容

我们知道Java是支持向后编译的,也就是说,在低版本(如JDK6)上编译的class文件或者jar文件可以在高版本上(如JDK8)上编译通过,但这并不意味着在JDK7上编译的class文件就可以在JDK5上顺利通过编译。为什么?因为高版本通常有很多低版本不支持的新特性。想想看,你能够在JDK5上编译含有lambda表达式或者Stream API的代码吗?当然不行。即便你没有使用那些低版本不支持的新特性,每个class文件都有一个major或者minor版本号,这是存在于Java编译器中的,并且和JDK的版本号是对应的,下面我们列出对应JRE的major版本号:

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

我们可以发现Java8的major版本号是52,这就意味着如果你使用JDK8执行javac命令,将会默认生成一个major版本号为52的class文件,如果你使用JDK7运行这个class文件,你就会收到"Unsupported major.minor version 52.0"。

以上部分只是大概解释了,为什么会出现这样的错误,那么现在重点来了,实际的解决方案如下:
公司现有的项目是JDK6,我们需要导入新的jar包,但是它会与jdk6不兼容,所以要强制给jar依赖的jdk版本进行降级。使用一个工具Retrotranslator进行降级操作。
使用方法,如下所示,在dos窗口下执行命令

java -jar D:\retrotranslator-transformer-1.2.7.jar -srcjar F:\jar\jsoup\jsoup-1.11.1.jar -destjar F:\new-jsoup-jdk1.5.jar -embed com.cn.internal -target 1.5
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用JDK17和SpringMVC时,遇到以下问题: 1. JDK版本与SpringMVC版本不匹配: 当你的JDK版本为JDK17时,你需要使用SpringMVC的5.3.x版本。如果你使用的是5.2.x版本,当你使用SpringMVC的代码时,就会出现提示错误。解决方法有两个: - 在Maven坐标中引入5.3.x版本的Spring包,或者手动导入5.3.x版本jar包。 - 将当前项目的JDK版本降级,不要使用如此高的JDK版本。 2. 缺少@Resource注解: 当你在使用注解时,遇到没有找到@Resource的错误时,可能是由于版本不匹配导致的。你可以尝试使用@Autowired注解来代替@Resource注解,因为在较新的Spring版本中,@Autowired注解已经取代了@Resource注解,成为了更常用的注解方式。 3. java.lang.NoClassDefFoundError异常: 当你遇到这个异常时,错误信息显示"org/springframework/context/ApplicationContext"类未找到。这可能是由于缺少Spring的ApplicationContext类所导致的。你需要确保你的项目中包含了正确的Spring包,并且类路径设置正确。你可以尝试重新导入Spring的相关jar包,或者检查你的项目依赖配置是否正确。 希望这些解决方法能帮助你解决问题。如果还有其他疑问,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jdk8SpringMVC4 所有spring核心包大合集 spring-framework-4.3.8.RELEASE](https://download.csdn.net/download/qq_39879040/11827466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [maven部署SpringMVC常见问题](https://blog.csdn.net/dkz97/article/details/121597066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值