Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java代码迁移到较新的jdk(例如1.8)_Java_Netbeans_Java 8_Jdk1.5 - Fatal编程技术网

如何将Java代码迁移到较新的jdk(例如1.8)

如何将Java代码迁移到较新的jdk(例如1.8),java,netbeans,java-8,jdk1.5,Java,Netbeans,Java 8,Jdk1.5,将较旧的jdk(1.5)的Java代码迁移到较新的Java版本(1.8)的最佳方法是什么,以从其新特性和改进中获得支持。 我们有一个庞大的JavaJDK5代码库,希望迁移到JDK8 有许多编译器警告和提示(例如,菱形运算符,多批次,不必要的(非)装箱,等等),它们将提高性能和代码可读性等 我们正在使用Netbeans IDE。有我们可以使用的插件吗?或者有迁移脚本吗?不幸的是,没有神奇的方法来实现您的要求,但是这里有一些建议可以让您更容易地将代码迁移到JDK 1.7(请注意,JDK 1.8已经推

将较旧的jdk(1.5)的Java代码迁移到较新的Java版本(1.8)的最佳方法是什么,以从其新特性和改进中获得支持。 我们有一个庞大的JavaJDK5代码库,希望迁移到JDK8

有许多编译器警告和提示(例如,
菱形运算符
多批次
不必要的(非)装箱
,等等),它们将提高性能和代码可读性等


我们正在使用Netbeans IDE。有我们可以使用的插件吗?或者有迁移脚本吗?

不幸的是,没有神奇的方法来实现您的要求,但是这里有一些建议可以让您更容易地将代码迁移到JDK 1.7(请注意,JDK 1.8已经推出一段时间了,Oracle已经正式不支持1.7了):

  • 在Eclipse中使用checkstyle或类似的插件来查找问题

  • 在Eclipse中使用JDK编译器级别1.7构建您的项目;Eclipse给出的警告比命令行编译器在控制台上打印的警告更便于用户使用

  • 理论上,JDK1.7向后兼容1.5。唯一的例外是assert和enum关键字。如果将这些词用作用户定义的类型/方法名,则会出现编译错误。因此,在大多数情况下,您可以直接进入警告。如果遇到紧急情况,您可以选择忽略其中许多警告(当然,只有在必须的情况下)


您的代码与Java 8不兼容的可能性很小,因为Java在确保与所有以前版本向后兼容方面已经取得了长足的进步

您可能会遇到更深层次的问题,可能是在集合或方法的实现中,这些集合或方法在过去几年中发生了变化

如果您没有覆盖代码关键路径的测试套件,从那里开始。您需要该测试套件来确保迁移不会严重破坏任何东西

接下来,仔细阅读兼容性指南,并确保您正在使用的任何东西都不会受到这些更改的影响


最后,代码清理部分可以解决,但现在不应该解决。您需要关心的唯一一件事就是让平台在新版本的Java上运行。在代码库中工作时,训练自己和团队使用较新的Java习惯用法,如菱形符号,并在适用的地方尝试使用资源。

找到了我想要的东西:Netbeans提供了
检查和转换

这可以用于通过配置更改来转换完整的代码库(或部分代码库)

这就是它的工作原理:

  • 选择您的项目
  • 单击
    Refactor
    菜单
  • 单击
    检查和转换
    菜单项
  • 选择
    configuration
    并使用
    Manage
    按钮进行配置
  • 选择所需的转换(例如,
    可以使用Diamond
    使用multicatch连接catch部分,
    不必要的装箱
    ,等等)
  • 单击
    Inspect
  • 查看建议的重构建议,然后单击
    Do refactoring
  • 您的完整代码库将被重构,并使用您选择的新特性和新习惯用法

    IntelliJ IDEA也有类似的特点。请参见
    分析
    检查代码…


    在Eclipse中,这在
    代码样式(配置)或
    源代码(菜单)中称为
    清理

    不熟悉Netbeans。但是您可以尝试IntelliJ(免费版本)来解决这些问题。您描述的警告不是来自编译器,而是来自Netbeans IDE。它们正是您所要求的功能的一部分。除了这些警告之外,Netbeans还提供了修复程序,如果您愿意,您可以在整个项目上运行这些审计和修复程序。不需要额外的插件。
    assert
    enum
    都出现在Java 1.5中。感谢您详细的回答。兼容性不是这里的问题。我们也有很多测试。我特别希望迁移能够从较新JDK的改进中获益。