将旧版jdk(1.5)的Java代码迁移到更新的Java版本(1.8)以提供其新功能和改进的最佳方法是什么? 。 我们有一个庞大的Java jdk 5代码库,想要迁移到jdk 8。
有很多编译器警告和提示(例如diamond operator
,multicatch
,unnecessary (un)boxing
等),这些都会提高性能,代码可读性等。
我们正在使用Netbeans IDE。是否有我们可以使用的插件或是否有迁移脚本?
答案 0 :(得分:4)
您的代码与Java 8不兼容的可能性很小,因为Java已经取得了很大的进步,以确保向后兼容所有以前的版本。
您可能会遇到的问题更深层次,可能是多年来发生变化的馆藏或方法的实施。
如果您没有涵盖代码关键路径的测试套件,从那里开始。您需要该测试套件以确保迁移没有&#39可怕地破坏了什么。
接下来,请仔细阅读兼容性指南for Java 1.7和Java 1.8,并确保您特别使用的内容不受这些更改的影响。
最后,可以解决代码清理工作,但现在不应该解决 。您唯一需要关注的是让平台在新版本的Java上运行。当你在代码库中工作时,要训练自己和团队使用更新的Java习语,例如钻石符号,并在适用的情况下尝试使用资源。
答案 1 :(得分:1)
不幸的是,没有什么神奇的方法可以实现你的要求,但是这里有一些指针可以让你更容易将代码迁移到JDK 1.7(注意JDK 1.8已经出现一段时间了,并且1.7已经不在Oracle的正式支持下了:
在Eclipse中使用checkstyle或类似的插件来查找问题
在Eclipse中使用JDK编译器级别1.7构建项目; Eclipse提供的警告比命令行编译器
理论上,JDK 1.7向后兼容1.5。唯一的例外是assert和enum关键字。如果您将这些单词用作用户定义的类型/方法名称,则会出现编译错误。所以在大多数情况下,你可以直接听到警告。如果推动推动,你可以选择忽略其中许多警告(当然,只有你必须这样做)
答案 2 :(得分:1)
找到我要找的东西: Netbeans 提供Inspect and Transform
。
这可用于使用更改配置转换完整的代码库(或部分代码库)。
这是它的工作原理:
Refactor
菜单Inspect and Transform
菜单项configuration
并使用Manage
按钮Can Use Diamond
,Join catch sections using multicatch
,unnecessary boxing
等。)Inspect
Do Refactoring
您的完整代码库已重构,并使用您选择的新功能和新的习惯用法。
IntelliJ IDEA 具有类似的功能。见Analyze
> Inspect Code ...
在 Eclipse 中,这在clean up
(配置)或code style
(菜单)中称为source
。