【发布时间】:2018-02-27 12:21:15
【问题描述】:
当我编译一个依赖于我之前编译过的其他模块的模块时,我必须指定--module-path <directory> 选项。这使得我依赖的模块可见。
但同时我也想让一些非模块化的 Jar 文件可见。但是,如果不使它们成为自动模块,而只是在 --module-path <directory> 旁边指定 --class-path some.jar,那么 javac 似乎会忽略 claspath 并抛出“未找到包 yyy”和其他“未找到” “错误。
我可以理解在同一(编译)时间使用--class-path 和--module-path 是非法的,但javac 不会以任何方式警告我。
【问题讨论】:
-
两者可以混合使用,你能分享一个我们可以验证的最小例子吗?
-
我可以理解同时(编译)时使用--class-path和--module-path是非法的,为什么会这样?
-
混音是绝对合法的。但是,模块化 jar 不能引用类路径上的非模块化 jar。自动模块(模块路径上的非模块化 jar)充当桥梁:模块化 jar 可以引用它们,而自动模块可以读取类路径。
标签: java classpath java-9 java-platform-module-system module-path