经过几年的努力,我们终于开始在软件级别方面将我们的应用程序从黑暗时代中拉出来,其中一个步骤是将我们的Java版本升级到Java7。在大多数情况下,这相当轻松,但是有一些惊喜:

  • 当我们切换到Java 7时,已经运行了好几年的测试用例开始失败。事实证明,我们有一些测试用例依赖于同一类中的先前测试用例。 这在两个方面都是不好的:1)测试用例应该各自独立; 2)测试类中测试用例的执行顺序是不能保证的,尽管到目前为止(在Java 7之前),顺序是找到的在源代码中。 我发现此链接有助于解释不一致情况
    我在Eclipse中看到的排序。 这不是Java 7的问题,而是我们的测试用例。 当我们开始使用Java 7时出现的一些东西
  • 我们的Swing客户开始抛出ClassCastExceptions ,并且该代码已经存在了10多年了,可以追溯到Java 1.4。读取javadocs可以解释这个问题,但是我决定进行更多研究以找出发生这种情况的确切原因。现在。 我们正在向TreeSet中添加条目,以保存FocusManager的前进和后退遍历键,并将KeyStroke对象放入TreeSet中。 Javadoc明确指出放置在TreeSet(或下面的TreeMap)中的对象必须是可比较的,或者您需要使用Comparator创建TreeSet以便对这些对象进行排序。 我们什么都不做,也没有例外。 深入研究Java源代码,我发现从Java 7开始,TreeMap类已开始强制执行此“要求”,在该类的早期版本中该代码已被注释掉,因此实际上并不需要比较器。 修复很容易,我创建了一个KeyStrokeComparator并将其传递给TreeSet构造函数。
  • 我还注意到,我们的Java jar签名已开始记录有关证书无效的警告。 为了保持构建的整洁而不发出这些警告,我进行了一些搜索,发现了一些与Java 7相关的帖子,并从代码签名证书中删除了MD2withRSA算法。 我在Verisign的支持下工作,以帮助从证书链中删除该算法,并且警告消失了! 不幸的是,这还没有结束代码签名问题。
  • 接下来,我们的Web Start客户端将不再成功启动,而是引发异常,至少在开发过程中,Web起始程序经常会遇到“ 并非所有罐子都使用同一证书签名的错误消息”错误消息。 我写了另一篇关于如何帮助调试的博客文章 ,认为这只是“常见的可疑罐子之一”,我们有问题,但不是,不是。 知道自证书更新以来所有这一切都发生了,这使我检查了所有已签名的罐子以寻找线索。 所有罐子均已使用相同的证书签名,但是在删除链条目之前,对第三方罐子进行了签名,而在更改证书后,我们的应用程序代码已作为构建过程的一部分签名。 这使我相信,即使罐子是用相同的证书签名的,在更改证书之前和之后签名的罐子之间也必须有一些区别。

对jar进行签名后,将在jar内的MANIFEST.MF文件中生成条目,对于jar中的每个类一个条目。 这些条目包含类的名称以及一些签名算法信息,并且在查看MANIFEST.MF文件之后,我发现了区别。 更改前签名的第3方jars包含每个类的SHA1-Digest条目,但从当前版本签名的jars中包含SHA-256-Digest条目 用更新的证书重新签名所有的第3方jar可以解决大多数问题。 我们在重新签名过程中遇到了一个小问题,在该过程中,我们用自己生成的版本重写了现有的MANIFEST.MF,这导致了几个jar文件出现问题,这些jar文件在清单文件中包含其他服务提供商信息。

全天工作! 很高兴成为Java领域的最新专家。 接下来,迁移到EJB3和Hibernate 3或4。

希望这可以帮助!

参考:从我们的JCG合作伙伴 Mike Miller到Scratching我的编程痒博客上的Minor Gotchas 。

翻译自: https://www.javacodegeeks.com/2013/05/minor-gotchas-from-migration-to-java-7.html

从迁移到Java 7的小技巧相关推荐

  1. java 迁移数据_从迁移到Java 7的小技巧

    java 迁移数据 经过几年的努力,我们终于开始在软件级别方面将应用程序从黑暗时代中拉出来,其中一个步骤是将我们的Java版本升级到Java7.在大多数情况下,这很轻松,但是有一些惊喜: 当我们切换到 ...

  2. amigo幸运字符什么意思_OMG,12 个精致的 Java 字符串操作小技巧,学它

    字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...

  3. OMG,12 个精致的 Java 字符串操作小技巧,学它

    字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...

  4. 统计java类含有多少个方法_35个Java代码优化的小技巧,你知道几个?

    技术文章第一时间送达! 作者:coates https://www.cnblogs.com/coates/articles/7204652.html 前言 代码优化,一个很重要的课题.可能有些人觉得没 ...

  5. Java io流小技巧_选择用流的小规律(java)基本的io流

    选择流的规律 1 首先我们要明确源和目的 源: InputStream Reader 目的::OutputStream Write 2 我们要判断源和目的是不是纯文本 源是纯文本 :Reader 否则 ...

  6. 写简洁java代码的小技巧

    1. 定义配置文件信息 有时候我们为了统一管理会把一些变量放到 yml 配置文件中 例如 用 @ConfigurationProperties 代替 @Value 使用方法 定义对应字段的实体 @Da ...

  7. java编码技巧_编码小技巧 让java编程更便捷

    经过一段时间的编码,程序员们或多或少会形成自己的编码习惯,好的习惯能帮助自己写出更好的代码,方便程序的维护.抱着侥幸心理,对"可能会出错"的代码没有做"防错性程序设计&q ...

  8. 字符串操作的12个小技巧!

    字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...

  9. 360浏览器保存密码设置_电脑小技巧查看浏览器保存的系统账号密码

    电脑小技巧--电脑做无线热点 电脑小技巧--U盘坏了如何修复 电脑小技巧--自动维护计划.任务关闭.禁用 电脑小技巧--预防U盘中毒 电脑小技巧--提高U盘读写速度 电脑小技巧--调整引导高级选项加快 ...

最新文章

  1. 盲僧一键r闪用什么设置_美加狮R.A.T. PRO X3至尊版带你畅玩模拟飞行
  2. css类选择器或逻辑,深入理解CSS中选择器的逻辑处理
  3. 基于JavaFX的Linux进程树
  4. JeecgBoot轻松解决ERP项目复杂布局需求,JVXETable高性能行表格效果和项目案例
  5. 详解ROS中的TF使用
  6. ApacheCN 大数据译文集 20211206 更新
  7. bundle + forever部署Meteor App
  8. Flink+Hudi 构架湖仓一体化解决方案
  9. 猫扑_猫女郎图片批量下载器
  10. 同步助手 android 微信 表情包,微信表情轻松导,同步助手带你装逼带你飞
  11. 程序员高手必会的十大编程算法
  12. ATtiny85单片机制作PCB小提琴
  13. 珍藏版 | 20道XGBoost面试题
  14. 企业自建私有云-openstack-介绍
  15. pnpm : 无法加载文件 C:\Users\86183\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
  16. Sql Server数据库中查询操作时“对象名无效”解决方法
  17. centos7 firewall-cmd 命令报错 ModuleNotFoundError: No module named 'gi'
  18. 2020年全球程序员收入出炉,国内程序员的收入也不低!北京以10万美元的薪资排名第十!
  19. 简易记账开发笔记之GridLayout
  20. 线性代数(六) : 线性相关与线性无关

热门文章

  1. java本地创建zk节点
  2. 本地方法(JNI)——从java 程序中调用C函数
  3. java异常——分析堆栈跟踪元素+使用异常机制的技巧
  4. poi中文api文档
  5. java oca_OCA的Java拼图游戏第3部分
  6. sun jdk 与jdk_Sun过去的世界中的JDK 11和代理
  7. kie-api_7.0上的新KIE持久性API
  8. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...
  9. php cdi_CDI和EJB:在事务成功时发送异步邮件
  10. Spring Boot 2中的功能切换