在javac中混合--class-path和--module-path(JDK 9)

时间:2018-03-28 15:02:38

标签: java classpath java-9 jigsaw module-path

我试图遵循这个question,但它确实对我不起作用。 我想编译1个模块(不需要任何其他模块或jar)以及其他使用该模块的类,并且将在未命名的模块中。

javac -cp lib\* --module-path modules --add-modules simpleModule -d out @classes.txt

运行此命令后,我得到了#34;包装组织....不存在"。但是这个包的jar在lib目录中

lib - 带有我的libraries-jars的目录

modules - 此文件夹包含模块" simpleModule"使用module-info.java

@ classes.txt - 要编译的所有类列表(包括模块化和非模块化)。操作系统 - Windows

当我从simpleModule中删除module-info.java时,一切都编译得很好。

1 个答案:

答案 0 :(得分:0)

一个老问题,但是最近在使用模块和非模块jar进行项目时遇到了一个相关问题。根据您的示例命令行,如果您的模块位于jar中,请使用以下命令行:

javac -cp lib\*.jar -d out @classes.txt

如果该模块不在jar中(表示爆炸目录),则将使用以下命令:

javac -cp mods\moduled.in.question -d out @classes.txt

我使用JDK 11.0.1测试了以上内容。