The spec of java.lang.Package and ClassLoader::definePackage have been changed in jdk-9+111 such that Package objects are defined per class loader and no longer inspect what packages are defined in the class loader hierarchy.
The spec of URLClassLoader::definePackage(String name, Manifest man, URL url) should also be changed accordingly. Webrev at: http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8153665/webrev.00/ Mandy