Java模块系统新特性快速上手指南( 三 )


您将看到输出Hello Java Module World 。
6.向后兼容性您可能很想知道如何在后Java 9世界中运行用模块化前编写的Java程序 , 因为以前的代码库对模块路径一无所知 。 答案是Java 9被设计为向后兼容 , 即以前代码依然可以运行在9及以后的版本中 。 但是 , 新的模块系统是一个巨大的变化 , 您可能会遇到问题 , 特别是在大型代码库中 。
在Java 9上运行9以前的代码库时 , 您可能会遇到两种错误:一种源自您的代码库 , 另一种源自您的依赖 。
对于源于代码库的错误 , 这个命令可能会有所帮助:jdeps 。 当指向一个类或目录时 , 该命令将扫描存在哪些依赖项 , 以及这些依赖项依赖的模块 。
对于源于依赖关系的错误 , 您可寄希望您所依赖的包将会有更新的Java 9兼容构建版本 。 如果没有 , 你可能不得不寻找其他选择 。
一个常见的错误是这样的:
How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
这是Java抱怨找不到某个类 , 因为它已经迁移到一个模块 , 而对使用方(消费代码)不可见 。 这里() 描述了几种具有不同复杂性和持久性的解决方案 。
同样 , 如果在依赖项中发现此类错误 , 请进行项目检查 。 它们可能有Java 9构建版本供您使用 。
JPMS是一个相当彻底的改变 , 需要时间来适应 。 幸运的是 , 并不着急 , 因为Java 8是一个长期支持版本 。
也就是说 , 从长远来看 , 旧的项目将需要迁移 , 而新的项目将需要明智地使用模块 , 以期能够利用一些模块应允的好处 。
7.小结【Java模块系统新特性快速上手指南】本文简要介绍了Java中的模块系统的相关技术知识 , 并做了实例性演示实战操作 , 动手练一把 , 基本就能窥得JPMS的总体特性了 , 后续有机会再深入讲解相关技术细节 。
本篇就到这里了 , 关注一下 , 分享出去吧 , 谢谢.