最近我被分配到一个任务,我必须将现有的独立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兼容。
请说明在编译和构建应用程序时可能遇到的其他挑战是什么?
答案 0 :(得分:5)
虽然Java应该在版本之间向后兼容,但是众所周知,任何语言的向后兼容性并不像名称所暗示的那样直接。一些(大多数)项目发布了专门针对一个或另一个开发工具包编译的libs版本,以利用语言中添加的新功能和增强功能。
话虽这么说,我相信更聪明的方法是:首先,更新项目的JDK,并针对新的字节码版本重建它。您可能需要升级Ant和(如果这是您选择的IDE)Eclipse(see here why)。
其次,您必须检查编译错误,这很可能会导致您有条件地更新库以修复它们。解决了这些问题后,您必须运行您的应用程序并查看它是否按预期运行;请记住,当主题是依赖时,编译问题只是冰山一角。
仔细检查应用程序的日志,查找任何类型的异常,但主要是与类加载异常相关的异常,例如ClassCastException,ClassNotFoundException,NoClassDefFoundException,UnsatisfiedLinkError等。如果有任何问题,您必须逐个查明并搜索特定故障排除程序库的特定解决方案。
如果涵盖所有内容,您应该让您的应用再次健康运行。
最后一个提示,如果您的这个项目仍在开发中,那么将您使用的工具更新到最后一个版本将是一个非常好的做法。还要更新开发工具,例如构建(例如Ant,Maven,Gradle等),JDK和IDE。升级它们比释放大规模升级更容易:)