JDK版本降级,如何重新编译打包项目

目前大部分人使用jdk1.8以及更高版本的jdk,在开发过程中也使用了很多jdk1.8的新特性,但或许还存在一些使用jdk低版本的客户,这时如果我们提供的代码涉及必须高版本jdk才能运行的话,那代码就必须降级,客户才能使用,以下记录我们的项目demo jdk降级遇到的问题

1、下载jdk

首先下载对应版本的jdk,可下载免安装版本的jdk,貌似Jdk1.5没有免安装的

2、修改编辑器,以idea为例

以上大概就是编辑器要修改的地方,更改完之后,运行项目,是否报错,报错后改语法

3、修改高级语法

注意:java.util.Base64是JDK1.8中新增的类,所以它只支持JDK1.8及以后的版本,如果你的JDK版本低于1.8,请使用org.apache.commons.codec.binary.Base64.

jdk1.8的新特性也需修改成兼容低版本的

4、重新编译依赖的jar包

demo项目中所依赖的其他项目的jar也必须在对应jdk版本环境下重新编译打jar,否则无法运行

报错,大概报错是52.0 。。。50.0之类的,具体的没截图,百度了一个,挺像,如下图:

原因就是使用了低版本的jdk编译了高版本的jar,所以有问题,所以必须要把对应的jar的jdk也降下去,我修改的jar包如下:

5、更改https握手

jdk1.7 支持协议 :SSLv2Hello 、SSLv3、TLSv1、TLSv1.1、TLSv1.2五种协议,但是默认协议是:TLSv1,因为https 请求是双向认证的也就是jdk的支持协议最低是TLSv1以上的版本,所有jdk1.7不能访问https请求

我降的jdk版本为jdk1.7,所以没去研究jdk1.6,jdk1.5支持的协议

一开始采用的方法比较复杂,还引入了bc包

jdk1.7访问https请求,jdk1.8访问https请求-CSDN博客

大概就是参考这个处理的,https请求访问倒是没问题了,但是跟我们原有项目的bc包冲突了,导致我们的接口都无法使用了

报错如上,所以后面又开始寻找解决https握手的方法,最后无意当中看到更改一个协议就可实现,简直太激动了,立马试了一下

由原来的TLS改成了TLSV1.2,竟然好使了!!!,但是听同事说他之前也这样解决过,不好使,后面才换成引入bc包的,那或许是还有其他坑我没踩到,又或许是他使用的jdk1.6这样改确实不行,总而言之,费尽一番周折,终于在jdk1.7环境下运行了我们的demo,喜极而泣!!!

相关推荐
qw9492 分钟前
SpringMVC
java·后端
茂桑6 分钟前
MVCC(多版本并发控制)
java·开发语言·数据库
customer0821 分钟前
【开源免费】基于SpringBoot+Vue.JS医疗报销系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
B站计算机毕业设计超人25 分钟前
计算机毕业设计SpringBoot+Vue.jst房屋租赁系统(源码+LW文档+PPT+讲解)
vue.js·spring boot·后端·eclipse·intellij-idea·mybatis·课程设计
barcke30 分钟前
【深度解析】Java接入DeepSeek大模型:从零实现流式对话+多轮会话管理(完整项目实战) —— SpringBoot整合、API安全封装、性能优化全攻略
java·spring boot
zl97989942 分钟前
MybatisPlus-注解
java·spring·maven
thinkMoreAndDoMore1 小时前
深度学习(3)-TensorFlow入门(常数张量和变量)
开发语言·人工智能·python
杰九1 小时前
【环境配置】maven,mysql,node.js,vue的快速配置与上手
java·vue.js·spring boot·mysql·node.js·maven
wapicn991 小时前
‌挖数据平台对接DeepSeek推出一键云端部署功能:API接口驱动金融、汽车等行业智能化升级
java·人工智能·python·金融·汽车·php
蓝桉8021 小时前
图片爬取案例
开发语言·数据库·python