最近我被分配到一个任务,我必须将现有的独立Java应用程序从Java 1.6升级到Java 1.8.
我还没有完成代码,我不知道这个项目.
他们使用的是ANT 1.6.1,
AXIS 1.5.1,
ABINITIO 2.15,
ORACLE 11.1.0.7,
AUTOSYS R11,
Java 1.6.
我知道首先我需要确定上面提到的工具/框架是否与Java 1.8兼容.
请说明在编译和构建应用程序时可能遇到的其他挑战是什么?
尽管Java应该在版本之间向后兼容,但是众所周知,任何语言的向后兼容性并不像名称所暗示的那样直接.一些(大多数)项目发布了专门针对一个或另一个开发工具包编译的libs版本,以利用该语言中添加的新功能和增强功能.
话虽如此,我相信更明智的方法是:首先,更新项目的JDK并重新构建它,以新的字节码版本为目标.您可能需要升级Ant和(如果这是您选择的IDE)Eclipse(请参阅此处原因).
其次,您必须检查编译错误,这很可能会导致您有条件地更新库以修复它们.解决了这些问题后,您必须运行您的应用程序并查看它是否按预期运行; 请记住,当主题是依赖关系时,编译问题只是冰山一角.
仔细检查应用程序的日志,查找任何类型的异常,但主要是与类加载异常相关的异常,如ClassCastException,ClassNotFoundException,NoClassDefFoundException,UnsatisfiedLinkError等.如果有任何问题,您必须逐个查明并搜索特定故障排除程序库的特定解决方案.
有了这些,你应该让你的应用程序再次运行健康.
最后一个提示,如果您的这个项目仍在开发中,那么将您使用的工具更新到最后一个版本是一个非常好的做法.还要更新开发工具,例如构建(例如Ant,Maven,Gradle等),JDK和IDE.在发布时更容易升级碎片而不是处理大规模升级:)