是否可以在JDK 11上使用jlink来创建包含已删除的Java SE EE模块的运行时?

swp*_*mer 5 java jlink

当我尝试在运行时包含java.xml.bind时,我收到一条错误消息:

错误:自动模块不能与jlink一起使用:java.activation from file:... [url to javax.activation-api-1.2.0.jar in my gradle cache]

我在模块路径上使用这些工件:

"javax.xml.bind:jaxb-api:2.4.0"
"org.glassfish.jaxb:jaxb-runtime:2.4.0-b180830.0438"
Run Code Online (Sandbox Code Playgroud)

看来,使用JDK 11,模块已被删除,但尚未提供完全模块化的替换.所以jlink无法从它们创建运行时.

为什么外部替换不是正确的模块化,因为它们已经是JDK 10中的模块?

java.activation不仅没有模块化,它还有一个新的模块名称"jakarta.activation".请参阅https://eclipse-ee4j.github.io/jaf/#Latest_News 我相信会进一步破坏事情,因为依赖于该模块的所有内容都必须在jlink运行之前再次更改.