问题标签 [java-module]

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 回答
18314 浏览

java - 包与 Java 9 中的自动模块冲突

随着 Java 9 的临近,我认为将我的一些项目移植到 Java 9 将是一个很好的学习练习。在我的一个项目中,我依赖于rxjavarxjavafx

我想将此项目创建为命名模块。为此,我需要创建一个module-info.java文件,并且需要在此处指定和的rxjava要求rxjavafx。但是,这些库还没有任何模块信息。

为了解决这个问题,我读到我需要创建 Automatic Modules。据我了解,我需要将 jar 重命名为一个简单的名称,rxjava然后在参数rxjavafx中列出这些 jar 。然后我在我的 jar 名称中--module-path添加一个requires指令。module-info.java

我编写了一个 gradle 任务来为我编辑 jar 名称,它似乎在大多数情况下都有效。它需要所有需要编译的 jars 并将它们重命名为不包含版本信息或斜杠。然后将文件连接成一个:单独的字符串:

自然地,这些rx库共享它们的一些包名称......但这会导致编译器吐回错误,例如:

似乎解决此问题的唯一方法是将其内容重新打包到一个 jar 中rxjava并将rxjavafx其添加为单个模块。虽然这似乎不是一个好的解决方案......

所以我的问题是:

  • 我是否正确使用了新的模块系统?
  • 我能做些什么来处理这个错误?和
  • 这些依赖项是否阻止我更新,或者我应该等待 rx 更新他们的库?

注意:我尝试使用标准java/运行它javac,它们会导致相同的问题。这也是我的java版本:

0 投票
1 回答
507 浏览

monitoring - Java 9 Jigsaw 对 javaagent 的支持

Java 9(特别是 Jigsaw)中是否有任何计划来支持 Java 监控代理的特殊要求?

通常,监视代理需要能够访问默认情况下原始 Java 应用程序不可用的类、包和模块。通过 -javaagent 命令行参数加载到 JVM 的监控代理不会作为模块加载,即使 jar 文件包含 module-info.class 文件也是如此。我能够为我的监控代理提供所需权限的唯一方法是添加命令行参数,这些参数为所有未命名的模块提供这些权限。

0 投票
2 回答
44004 浏览

java - 无法从 java.base 模块导出包

使用 IDEA-EAP 进行 JDK9 开发实验。

我收到以下错误 -

类定义为 -

我尝试module-info.java在使用 IDE 创建的模块中也包含一个文件,其中包含以下语句 -

目录结构现在看起来如图所示 -

目录结构

IDE 虽然反映了module-info.java未使用的情况,这可能是我无法定义上述module com.jigsaw.npe尝试的原因。

寻找有关如何正确放置 module-info.java 和/或我错过的任何其他内容的帮助。

0 投票
1 回答
1322 浏览

java-9 - How do I include a java 9 module at runtime?

I have a server kit that I'm trying to test on the java9 JDK (found here, I'm using the 64-bit Linux version), however I'm encountering the following error shortly after startup:

The server kit starts without issue when using java8. Somehow I need to tell the runtime system to include the javax.xml.bind module, however I'm new to java9 and don't know how to do this short of recompiling the entire server kit into a module and adding a dependency on the javax.xml.bind module. Is there a way to resolve this error that doesn't require me to recompile the server kit into a module?

0 投票
2 回答
8743 浏览

java - 我应该如何命名我的 Java 9 模块?

假设我有一个带有groupId = org.abcand的库artifactId = myLibrary。模块名称的推荐名称是什么:myLibraryorg.abc.myLibrary?有命名方案的官方指南吗?

0 投票
3 回答
4888 浏览

java - 我可以通过 MANIFEST.MF 要求 Java 9 模块吗?

我的 Java 库应该与 Java 8 和 Java 9 兼容。为了使用 Java 9 运行,我们需要一些 Java 9 模块。

我知道我可以通过命令行添加它--add-modules。但它是一个库,我无法控制命令行。

有相当于--add-modulesinMANIFEST.MF吗?还是有其他与 Java 8 兼容的解决方案?

0 投票
2 回答
6440 浏览

spring - Spring项目的Java 9 Jigsaw(模块)有什么计划吗?

Java 9 计划很快发布(7 月 27 日)。是否有计划发布符合 Java 9 的模块化 Spring 项目版本(Java 9 项目 Jigsaw)?

0 投票
1 回答
32596 浏览

java - Java 9 中的 --add-exports 和 --add-opens 有什么区别?

由于新的模块系统,Java 9 (jdk-9+170) 默认情况下不允许应用程序查看 JDK 中的所有类,这与所有以前的 Java 版本不同。

为了解决这个问题,java命令行提供了一个新参数--add-exports,它允许打破封装,如下所示:

java -jar josm.jar --add-exports java.base/sun.security.util=ALL-UNNAMED --add-exports java.base/sun.security.x509=ALL-UNNAMED

这在JEP 261中有很好的解释。

我已经阅读了--add-opens使用相同语法的类似选项,但尚未更新 JEP 261 来描述它(最后更新:2017/03/08 13:58)。

这两个选项有什么区别?

编辑JEP 261已于 2017-09-22 更新以解释它。

0 投票
1 回答
1900 浏览

java - java 9:JLink 创建了无效图像 - 缺少模块可执行脚本

我正在创建一个包含 3 个模块的示例应用程序userdept并且account. 在我的用户模块中,我有一个主类并使用以下命令编译我的模块:

编译完成后,执行如下命令运行:

运行java模块后输出成功。但是当尝试使用jlink成功创建的映像创建运行时映像但模块可执行脚本不存在时。为了创建图像,我使用以下命令:

在运行时映像中,我有bin目录,但该目录仅包含javakeynote脚本。我也期待用户主类脚本来执行我的应用程序。

我的Java版本如下:

我该如何解决这个问题?

0 投票
1 回答
849 浏览

java - Java 9 模块和类路径地狱:冲突的类名

据说java 9模块将解决类路径地狱。但是,我正在考虑以下情况:模块 A 使用模块 B 和 C。两个模块都将导出具有相同名称和包的类。在这里如何解决类加载问题?