49得票1回答
如何将--add-opens JDK模块配置传递给Maven测试

我正在将我们的生产代码中的Java版本从Java 8升级到Java 11。 由于使用了第三方库,如flume、zookeeper等,我必须在应用程序的Java启动命令中添加以下JDK模块配置。 --add-opens java.base/java.lang=ALL-UNNAMED --ad...

48得票3回答
加载类和资源后Java 9

我正在阅读InfoQ上引用Reinhold的这篇文章: 在Java 9中,开发者仍然可以使用Java类路径来搜索类和资源文件。只是在Java 9的模块化系统中,开发者不再需要类路径。 那么现在我的问题是:在Java 9中,如何正确执行上述任务?如何动态加载例如图片(而不是纠缠于相对路径...

42得票5回答
Java 9中的新关键词

Java 9 中最大的特性之一是由Jigsaw项目定义的模块系统。在阅读来自JavaOne 2015中Jigsaw项目:Under the Hood的幻灯片时,我注意到以下源代码:// src/java.sql/module-info.java module java.sql { exp...

40得票3回答
“Required filename-based automodules detected.”警告的含义是什么?

在我的多模块项目中,我只为几个模块创建了module-info.java文件。使用maven-compiler-plugin:3.7.0进行编译时,我收到了以下警告: [WARNING] * 检测到基于文件名的自动模块。请不要将此项目发布到公共构件存储库! * 这是什么意思?是因为...

37得票1回答
Java 9的JSR-305注释替代方案

目前,我们一直在使用Findbugs JSR-305注释(com.google.code.findbugs:jsr305),并且一切都很好,包括工具支持(Sonar、Eclipse、Findbugs等)。 然而,我们了解到Java 9中的Jigsaw将会破坏JSR-305注释(不允许一个包在...

35得票2回答
在JDK 9的javac中,是否可以混合使用--class-path和--module-path?

当我编译一个依赖于先前编译的其他模块的模块时,我必须指定 --module-path <directory> 选项。这使我依赖的模块可见。 但同时,我也想让一些非模块化的Jar文件可见。然而,如果我不将它们变成自动模块,只是在 --module-path <director...

34得票2回答
在Maven构建中正确实现Java模块及其间的测试依赖

我有一个使用Maven和Java的多模块项目。现在,我正在尝试迁移到Java 9/10/11并实现模块(如JSR 376: Java Platform Module System,JPMS)。由于该项目已经由Maven模块组成,并且依赖关系很简单,因此为项目创建模块描述符相当直接。 现在,每...

32得票2回答
使用Jlink在一个平台上为另一个平台创建Java运行时镜像

我在Linux机器上使用jlink创建了运行时映像。我看到include文件夹下有linux文件夹。这是否意味着我只能在Linux平台上使用此运行时映像?如果是,是否有办法在一个平台上为另一个平台创建运行时映像(例如,在Linux上为Windows创建,反之亦然)?

31得票3回答
Java 9中自动模块与包冲突

随着Java 9即将发布,我认为将我的一些项目移植到Java 9是一个不错的学习练习。在我的某个项目中,我有关于rxjava和rxjavafx的依赖。dependencies { compile 'io.reactivex:rxjava:1.2.6' compile 'io.r...

28得票1回答
Java 9模块系统支持可选依赖吗?

背景 Maven中,一个构件可以声明依赖关系: <optional>true</optional> 这意味着依赖项不是必需的,但如果存在则可以使用它。 模块系统的现状似乎指定一个模块只能读取它所要求的模块。 问题: - Java 9模块系统确实不支持可选依...