21得票1回答
在命名模块中,对于类的getModule方法返回未命名模块。

我刚刚开始学习Java 9模块系统,我想知道一个类是否可以知道它所在的模块。 因此,我创建了以下模块。module de.test { exports de.test.myexport; } 并编译了一个看起来像jar文件的文件> jar --print-module-descri...

24得票4回答
Java 9清理器是否应该优先于终结器?

在Java中,重写finalize方法有些名声不好,尽管我不明白为什么。像FileInputStream这样的类在Java 8和Java 10中都使用它来确保调用close方法。然而,Java 9引入了java.lang.ref.Cleaner,它使用幻象引用机制而非GC终结。起初,我认为这只...

43得票5回答
Java 9接口与类的区别

随着Java 9允许在接口中定义private和private static方法,那么在interface和class之间还剩下什么区别呢?此外,Java是否正在逐渐向多继承迈进?

7得票2回答
无法在Java 9 Tomcat 9的docker容器中进行远程调试

我有一个基于opendjdk:8-slim的Docker容器,安装了Tomcat 9,并且我正在从我的IDE(IntelliJ)调试部署在其中的应用程序 - IDE运行在Docker主机上。我使用以下配置运行Tomcat: CATALINA_OPTS="-Dcom.sun.managemen...

7得票1回答
列出应用程序启动期间解析的模块。

如何获取应用程序启动时已解析的模块列表,以便确定可以从根模块访问哪些服务提供者。

21得票1回答
为什么不允许导出整个模块?

在Java 9的模块声明中有两个构造。exports com.foo; 然后opens com.foo; exports授予编译时访问权限,而opens允许在运行时访问,例如通过反射和资源。 opens相对于exports有一种宽容度,你可以将整个模块定义为开放的,这与明确开放每个包的结果...

7得票1回答
Intellij: 如何为javax.annotation.PostConstruct添加java.annotation模块

我将项目使用的SDK升级到了Java 10。以下导入语句引发了一个错误: import javax.annotation.PostConstruct; “javax.annotation”包声明在“java.xml.ws.annotation”模块中,但是“application”模块没有...

8得票2回答
使用jdeps工具来处理具有多版本实现的模块,但根模块不包含在内。

如果当前模块具有多版本依赖项,您可能不确定如何使用jdeps来检查模块。 jdeps一直要求我提供--multi-version 9,但其他依赖模块并非多版本。 如何在这种情况下正确使用jdeps? 命令: jdeps -cp .\..\..\..\modules --module-...

10得票1回答
使用Java 9将自定义JMOD添加到模块路径

我使用jmod工具创建了一个简单的JMOD文件,方法如下: $JAVA_HOME/bin/jmod create --class-path classes test/samples.jmod 接下来,我尝试通过运行以下命令来执行该模块中的一个类: java -mp test -m de...

21得票2回答
WEB-INF/lib目录与Java 9模块

Web应用程序的WEB-INF/lib目录是放置jar文件的地方,而servlet容器(例如Tomcat)会自动将其纳入应用程序的类路径中。那么对于Java 9中的模块化jar文件,这个机制是如何工作的(或者将来应该如何工作)?这些模块提供了模块,用户必须指定应用程序使用哪些包含/导出的模块/...