Java 9、Jigsaw 和自动模块

标签 java intellij-idea java-9 java-platform-module-system

Java 9/10。一个多星期以来,我一直在为一个简单的项目而苦苦挣扎。

enter image description here

正如您在图片中看到的,我想使用 commons-collections 作为一个自动模块(我尝试用 maven 添加它,但效果不佳)。

所以,我需要将 jar 放到模块路径上。 IntelliJ 从哪里获取这个模块路径?我如何告诉 IDE 将 commons-collections 添加到项目中,以便
1.编译器可以在编译时找到它并且
2.Maven在构建时能找到吗?

有人可以帮忙吗?

编辑: 我试图将它作为各种不同组合中的模块依赖项添加到项目结构对话框中。我实际上已经尝试了数百种方法,在结构中移动了 jar,但我找不到足够简单的文档来告诉我如何执行此操作。 我使用编译器选项添加“--module-path automatic”(模块特定和通用编译选项),以便让 IDEA 找到它并让 Java 从中创建一个自动模块。

最佳答案

您需要先添加一个库条目,使其在 Modules 下可用:

第 1 步:添加库(添加 -> Java -> jar 文件)

enter image description here

第二步:选择模块(记得点击“应用”)

enter image description here

之后,module-info.java 文件将被成功验证:

enter image description here

关于Java 9、Jigsaw 和自动模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003449/

相关文章:

java - 异常在线程 "main"java.lang.UnsatisfiedLinkError : no opencv_java249 in java. library.path

java - 如何将 XML 配置转换为 Java

java - 隐藏功能 IntelliJ IDEA

gradle - 在以下任何来源中都找不到插件 [id : 'org.jetbrains.kotlin.jvm' , 版本: '1.2.71']

ant - 将 Java 9 模块系统与 Ant 一起使用

java - ServiceLoader 真的动态加载提供者吗?

java - java中的多个异步请求处理

java - 在客户端应用程序中声明 REST 服务 api 端点的正确模式?

java.lang.ClassNotFoundException : org. sqlite.JDBC IntelliJ + Maven 问题

java - 有没有办法使用 IntelliJ 重构 Set 初始化以使用 Set.of() ?