问题标签 [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.
java - 从 Java 9 访问 com.sun.tools.javac.util
我正在尝试List
从com.sun.tools.javac.util
. 这适用于 Java 8,但在切换到 Java 9 时出现以下错误:Package 'com.sun.tools.javac.util' is declared in module "jdk.compiler", which does not export it to the unnamed module"
.
我尝试添加requires jdk.compiler;
到我的module-info
文件中,但这并没有解决问题。
intellij-idea - Gradle does not add resources to module path
I created a simple gradle project that builds and runs a simple java 9 module.
This module requires only log4j and expects to find a log4j2.xml file to configure the logger.
The problem I am having is that it seems that this file is not added to the module classpath and when I execute./gradlew run
I always get "ERROR StatusLogger No log4j2 configuration file found. Using default configuration:" as the first output line, which means it could not find the file (which is under src/main/resources).
If I import this project in IntelliJ and run it, I get the exact same error.
Am I doing something wrong? Shouldn't this file be automatically added to the module classpath?
java - 自包含应用程序,用 Java 构建
我看过一些在线演示文稿,其中简要提到了 Java 9 中的自包含应用程序,但我有一个问题想澄清一下。
使用新的模块系统,您现在可以只包含运行应用程序所需的最少代码量。但是,希望运行应用程序的系统是否仍需要 JRE,或者是否可以将其包含在程序的基本模块中?
我怀疑是后者,因为下载最新版本 Java 的页面(此处)仍然显示版本 8_151。
TL;DR - 使用 Java 9,是否可以创建一个独立的可执行文件,可以在没有安装 JRE/Java 的系统上执行?
java - 限制 javapackager 添加的模块
我试图通过限制它包含的模块来减小我的应用程序的大小。我已经为我的运行时使用jlink
. 但是,当我javapackager
使用--add-modules
and--limit-modules
选项和逗号分隔的一组我用于运行时的相同模块的列表运行时,它仍然坚持添加所有模块。它似乎不想尊重我给它的选择。如何获得该工具来限制它添加到我的应用程序包中的模块?
这是我运行的命令,替换了一些用户名之类的内容:
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
. 我得到的错误也不同。
java - 为什么 --limit-modules 对我不起作用?
我有以下程序:
当我将此程序作为自动模块运行时,一切都很好:
但是当我使用时--limit-modules
,程序仍然运行良好:
不应该有类似的东西:
?
java - Java 9 迁移 javax.annotation
所以我尝试将我的项目迁移到 Java 9,但这个过程似乎并不像我想象的那么容易。我不断收到一些关于不可见包的错误,我可以在我的 pom 中使用以下参数修复这些错误:
但我仍然收到以下错误:
任何帮助,将不胜感激
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
在其中包含虚拟类,但是有更好的方法吗?