问题标签 [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.
java - 在 module-info.java 中需要 akka
我需要什么才能module-info.java
使用?我在.Akka
JDK 9
maven
java - 如何将模块声明注入 JAR?
假设我有一些lib.jar
我没有源代码的库(或者它是用一些不知道模块的非 Java 语言编写的)。lib.jar
没有module-info.class
,我不想将它用作自动模块,所以我想注入module-info.class
它。
我首先module-info.java
使用以下命令生成:
假设这产生了类似的东西:
然后我尝试编译它,但javac
由于包不存在package1
而失败:package2
当然,我可以创建目录package1
并package2
在其中包含虚拟类,但是有更好的方法吗?
java - 为什么未模块化的 JAR 可以访问封装的模块化 JAR 的非公开?
我在 intelliJ 中使用 Java 9:我创建了 4 个模块(所有模块都依赖于 module1):
- module1:导出包 pkg1 并将 pkg2 导出到模块 2。
- module2:需要 module1 并且能够访问这两个包
- module3:需要 module1 并且只能访问 pkg1
- module4:没有module-info.class,可以访问module1的两个包
我认为自动模块应该需要所有暴露的打包,而不是那些没有暴露的。
我不明白封装的意义是什么,如果它只适用于显式模块化的 JAR。
我错过了什么?
java - 是否可以在不使用编译器标志的情况下在同一个项目中混合 Java 8 和 Java 9 源代码?
在 Java 9 中,您可以选择将源目录打包为模块,方法是添加一个 module-info.java,它定义了它导出的事物包,以及它依赖的其他模块。
但是,一旦这样做,您必须在模块描述符中列出所有依赖项 - 并且依赖项本身必须都是模块。因此,通过扩展,如果您模块化单个源目录,则必须模块化公司范围内的每个源目录。
此外,您不能在 Java 8 或更早版本中定义模块,这意味着除了模块化每个 Java 源目录之外,您还必须将所有内容都转换为 Java 9。同时。
如果您在一家拥有大量代码并由许多不同项目共享的公司工作,这似乎是灾难性的。
现在,我可以通过设置一堆编译器标志来避免定义模块来解决这个问题,但这似乎是一个非常糟糕的解决方案。
我希望我理解不正确?
java-9 - Java 9 - 如何使用模块信息重新编译 .jar 库
我读到将 .jar 库作为依赖项添加到 java9 模块中,我们只需要将它们包含在 --module-path 中,它们将被转换为“Atomatic Modules”
但是,当我尝试使用 jLink 时,仍然出现错误:错误:找不到 dd.plist 模块的 module-info.class
我意识到我们可以使用 jdeps 生成 module-info.java,我的问题是如何使用这个 module-info.java 重新编译 .jar 库?
java-9 - module-info.java 不适用于 Java 9 中的 lombok
我在将我们的项目迁移到Java 9时遇到了问题。
更新 Java 9 后,我尝试运行项目,但遇到编译器错误:-
但我找到了解决方法。我添加了lombok.config
文件。
然后将module-info.java
文件添加到项目编译器后再次显示错误
项目示例:
我们有实体Store
:
在根的包中我有module-info.java
内容:
在根的项目中,我有 lombok.config文件:
在我称之为代码的某处:
eclipse - 创建 module-info.java 后无法使用未命名模块中的类
我正在尝试将旧的 java 项目迁移到 java 9,并且最好尝试新的 module-info.java 功能。该项目使用 maven 依赖项,据我所知,那些将 .jar 迁移为未命名的模块。项目本身在替换了一些折旧的库后运行良好,但是当我尝试添加 module-info.java 文件时出现问题。它不再能够与任何 Maven 导入交互。我对未命名模块的理解是错误的吗?我认为它们能够与同一个项目中的命名/自动模块共存。如果不是,为什么在创建 module-info.java 后我无法从我的 Maven 依赖项中导入类?
java - 如何让使用 Unsafe 的 java8 代码在 jdk8 和 jdk9 上工作?
我sun.misc.Unsafe
在我的 Java8 代码库中使用。这不适用于 Java9。
我想修复 Java9,但使用在 Java8 上运行的相同代码库。如果我放module-info.java
,它将不起作用,因为我的代码库是 Java8。
该怎么办?
java - module-info.java 'opens' 语句可以包含一个包和所有子包吗?
我有一个module-info.java
看起来像的文件 -
我希望有可能允许 Spring 访问所有内部包,而无需将每个包显式添加到 module-info.java 中。
有没有办法有一个更通用的opens
语句来允许我所有的内部包(和子包)都可以访问spring.beans
?
java - JPMS/Jigsaw 模块中缺少主类
我正在尝试创建一个可以java -p <jar file> -m <module>
在 Java 9.0.1 上运行的模块化可执行 jar 文件。
这在使用 创建 jar 时按预期工作,但在使用and生成时jar cfe test.jar test.Main -C classes/ .
会抛出。module test does not have a MainClass attribute, use -m <module>/<main-class>
mvn package
mvn assembly:single
这些 maven 生成的 jar 仍然可以java -p test.jar -m test/test.Main
使用java -jar test.jar
.
我检查了 jar 内容jar xf test.jar
,发现 jar 完全一样,除了清单(见下文):
和
java -p test.jar -m test
值得注意的是,在指定工作清单时仍然无法使用:
编辑:具有预期行为的回购: https ://github.com/deontologic/test