问题标签 [module-info]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5222 浏览

java - 我应该在 Java 9 中需要哪个模块才能使用 JPA?

我正在使用需要 JPA(javax.persistence.*类)的项目测试 Java 9。当我添加module-info.java并声明我的模块时,javax.persistece包下的所有类都变得不可用。

我进行了很多搜索,但在 Java 9 模块项目中找不到需要使用 JPA 的模块。

更新 正如艾伦建议的那样,我跑了

但还是有了这个module-info.java

我得到“module-info.java:[3,18] module not found:java.persistence”。

更新 2 这是我的项目结构:

有依赖关系pom.xmljavax.persistence-api

测试仓库:https ://github.com/heruan/java9-jpa

0 投票
3 回答
11825 浏览

java - 什么是 Java 9 中的开放模块以及如何使用它?

前面有关键字和没有关键字的模块有什么区别open?例如:

0 投票
2 回答
2015 浏览

java - Java 9 模块的目录布局

我一直在尝试编写 Java 9 模块,但无论我做什么,我都会收到错误“包为空或不存在”。我已经尝试在线搜索预期的目录布局,并尝试了我能想到的目录布局的所有变体,但没有任何效果。

例如,这是我尝试过的一种布局

bar.foo/module-info.java

bar.foo/bar/foo/wtf.java

但是,编译仍然像往常一样给出相同的错误。

0 投票
2 回答
13887 浏览

java - 无法为 Java 9 中自动生成的模块名称派生模块描述符?

我的项目依赖于 Netty Epoll 传输。这里是依赖:

此依赖项的自动生成的模块名称是:

由于nativeJava 9 中保留了关键字,因此我无法将此模块作为依赖项添加到我的项目中:

由于:

此外,jar 工具--describe-module报告以下内容:

无法为以下各项派生模块描述符:netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86‌_64.jar netty.transport.native.epoll:无效的模块名称:'native' 不是 Java 标识符

有什么解决方法吗?(当然,“发布正确的网络工件”除外)。

编辑

作为维护者的快速修复 - 您可以添加下一行来构建:

0 投票
7 回答
18377 浏览

java - Java 9 中的 requires 和 requires 传递语句有什么区别?

模块声明中的requiresrequires 传递模块语句有什么区别?

例如:

0 投票
2 回答
4350 浏览

java - 模块声明中的requires和requires static有什么区别

模块声明中的requiresrequires 静态模块语句有什么区别?

例如:

0 投票
2 回答
2736 浏览

java - Java 9:模块路径上可能有 2 个同名模块

模块路径上是否可以有 2 个具有完全相同名称(但内容略有不同)的模块?

据我所知,Java 9 编译器并没有抱怨它。我有 2 个模块声明如下:

两者都包含com.dj.helper包装,但包装内的内容不同。然后在我的主应用程序中,我希望导入这个模块:

同名的两个模块都在我的模块路径上。

我希望在编译我的com.dj模块时,编译器会抱怨同一个模块存在两次,但事实并非如此。这是否实际上意味着您的模块路径上可能有同一个 jar 的 2 个版本,而 Java 将不知道该使用哪一个?

0 投票
2 回答
1037 浏览

java - SPI + JDK 9 + 模块信息.java

我正在 JDK 9 上试验 SPI。整个示例适用于没有“module-info.java”的 JDK 9。添加“module-info.java”后,ServiceLocator 没有找到实现类。我很困惑,在模块化的 JDK 9 项目中找不到有效的 SPI 示例。

所以我的示例项目如下所示:

我已经介绍了界面:

该接口通过以下方式实现:

通过类似于以下的代码搜索实现:

现在是有趣的部分。当我在没有以下情况下执行课程时:

  • /implementationB/src/main/java/module-info.java
  • /applicationB/src/main/java/module-info.java

然后找到实现类并打印出文本。

引入这两个“module-info.java”文件后,ServiceLocator没有找到实现类。/applicationB/src/main/java/module-info.java的内容:

/implementationB/src/main/java/module-info.java的内容:

当我取消注释时:

行然后发生编译错误:

我曾尝试将包名称更改为编译错误提示,但随后我引入了“拆分包”问题。

我应该怎么做才能在完全模块化的 JDK 9 中使用 ServiceLocator?可能吗?有没有人看过工作的例子?代码也可以在这里看到:https ://github.com/RadoslawOsinski/spidemo

0 投票
1 回答
1434 浏览

java - module-info.java 使用 maven-compiler-plugin 和自动模块编译失败

我根据需要使用插件的 v3.7.0 和 JDK 9.0.1。我添加了两个requires语句,每个语句都引用类路径(自动模块)中的一个 jar。将 jar 移到 Modulepath 后,module-info.java 在 Eclipse 中编译成功。但是,Maven 给了我一个编译器错误,说其中一个缺失(奇怪的是,不是第一个,它只是之前的一行)。我试图检查自动模块名称,但我从这个 jar 的命令中得到一个错误。这个错误是什么意思,我该如何修复它,以便我可以找到正确的模块名称?

我在下面的输出中替换了我的用户名。有问题的 jar 确实使用了 aServiceLoader但未使用 Java 9 编译。

如何处理 Java 9 中自动生成的模块名称中的 java 关键字?与在模块名称中使用 Java 标识符有关的不同错误。我的模块的自动 jar 名称应该只是rcf因为 jar 名称是rcf-1.0.jar. 我得到的错误也不同。

0 投票
2 回答
2268 浏览

java - 如何从 Maven 依赖项构建 java 9 依赖项

Java9 引入了类似于 OSGI 和 Maven Dependecies 的强大模块化。

是否有一个 maven 插件能够构建检查 maven 依赖项的 java 9 依赖项?

例如,

我已经阅读了这篇文章,但它并不是那么有用 - 如何在 maven 中表达对 java ee 特性的依赖以过渡到 Java 9?