Java 9 build 118 is hiding some documented & public classes from unnamed module
Alan Bateman
Alan.Bateman at oracle.com
Mon May 16 14:45:20 UTC 2016
On 16/05/2016 15:28, Uwe Schindler wrote:
> :
>
> This is not the only class that’s missing at runtime, there are more: I do not have the complete list, but our checks using the forbiddenapis Ant/Maven/Gradle plugin fails to load classes around JAXB/XML (javax.xml.bind.*, javax.jws.*) and CORBA (org.omg.CORBA.*), but also "javax.activation.ActivationDataFlavor". But there may be more packages missing.
>
jdk-9+118 is the first JDK 9 build to have the policy for root modules
that is described in JEP 261. This has been changed in the Jigsaw EA
builds some time and only merged into the main line for build 118. I
hope to send mail to jdk9-dev shortly about this - we know it will be a
surprise to some.
As to what is going on? The java.corba and the EE modules are no longer
resolved by default when compiling code in the unnamed module or where
the main class is loaded from class path. This means the types in these
modules are not visible. Nothing has been removed and if you run with
`-addmods java.se.ee` then each of the Java EE modules will be resolved
as they were previously. We have updated text for JEP 261 that describes
this in more detail, along with the rational. We will likely assess the
impact of this change later in JDK 9 but for now, there is easy
workaround for those that depend on these components being in the JDK.
-Alan
More information about the jigsaw-dev
mailing list