java 1.6 升级 1.8_【转】JDK1.6升级JDK1.8遇到的一些问题,参考

最近在做了一个将JDK1.6升级到JDK1.8的一个task,这里跟大家分享一下我们在做这个task过程中遇到的各种问题。

首先描述一下我们在JDK1.6中所使用的各种组建,产品原来的框架选择的是Spring3.x,同时使用了HttpClient4.x,还有我们构建环境使用的是gradle 1.9。因为我们只是尝试升级,所以要保证build.gradle在JDK 1.6 和1.8下都可以运行。所以决定在运行使加入toggle -Pjava8标记是运行在1.8环境下,没有则表示运行在1.6环境下(hasProperty("java8"))。

在JDK1.8环境下需要升级以下组建,

(1)升级Spring3.x --> Spring 4.x  (**之后查阅 Spring官网资料 发现Spring4.x的发布就是为了支持JDK1.8,不过其同时修正了Spring3.2.3,使其也可以在JDK1.8下运行。)

(2)升级ASM3.x--> 5.x(**查阅 ASM官网发布日志 发现ASM自2013年10月发布5.0-BETA版为了支持JDK1.8)

升级完这些之后,发现出现了一个编译错误,Spring org.springframework.cache.Cache添加了两个抽象方法(get和putIfAbsent),因为这两个方法在之前的系统中没有使用过,所以决定实现这两个方法,不过抛出UnsupportException。可是为了保证可以在JDK1.6下可以编译通过所以注释了@override标签。

编译通过后,尝试运行Unit test(gradle test, urlTest, inTest)发现字节码错误,搜索资料发现JDK1.8中有几个小版本存在字节码Verify的Bug,所以在运行Unit test时加入 JVM参数 -nover

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值