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