Java 9/ 10。一个多星期来,我一直在为一个简单的项目而苦苦挣扎。
正如您在图片中所看到的,我希望使用commons-collections作为一个自动模块(我曾尝试使用maven添加它,但效果不佳)。
所以,我需要把jar放到module-path上。IntelliJ从哪里获取这个模块路径?如何告诉IDE将commons集合添加到项目中,以便
编译器可以在编译时找到它吗? andMaven可以在构建时找到它吗?
有人能帮上忙吗?
编辑:我尝试将它添加到项目-结构对话框中,以各种不同的组合作为模块依赖项。我确实尝试了数百种方法,在结构中移动罐子,但我找不到一个足够简单的文档来告诉我如何做到这一点。我使用编译器选项添加了"-- module -path an“(模块特定的和通用的编译选项),目的是让IDEA找到它,并让Java把它变成一个自动模块。
发布于 2018-06-24 01:48:55
您需要首先添加一个库条目,以使其在Modules
下可用
步骤1:添加库(添加-> Java -> jar文件)
第二步:选择模块(记得点击"Apply")
之后,将成功验证module-info.java
文件:
发布于 2018-12-05 00:16:40
如果您从包含module-info.java的( Intellij )模块运行程序,则intellij使用模块路径,否则它将使用类路径。
我试着将common4作为一个模块导入,它似乎确实对我有效,但我不得不使用与您的参数不同的'requires‘参数。您的'requires‘是’commons.Colltions4‘,我的是'org.apache.commons.collections4’(检查commons4清单条目中突出显示的Automatic-Module-Name并使用它)。
如果commons4清单中缺少自动模块名称( 4.1版及更早版本中不存在),则如果名称包含数字或非法字符,则可能无法将jar检测为模块。因此,一些maven存储库jars将无法工作,并且intelli将不会将这些jars视为模块。
您还可以使用以下命令检查错误的文件名:
jar --file=/path/to/jar --describe-module
如果命令失败,很可能是jar没有Automatic-Module-Name条目,并且文件名命名不正确。
好的
jar --file=C:\temp\jigsaw1-1.0.jar --describe-module
坏的
jar --file=C:\temp\jigsaw1.0.jar
--describe-Mode`
'jigsaw1.0:模块名称无效:'0‘不是Java标识符’
因此,一些maven jars可能无法被检测为模块,因为它们往往看起来很相似。
https://stackoverflow.com/questions/51003449
复制相似问题