Superpackages
The Modules Project was inactive and was subsequently dissolved Oct 2023. The approach described here was superseded by Project Jigsaw.
Superpackages are a new language construct being defined by JSR 294, see the draft specification.
Declaring Superpackages
At this time support for superpackages is not yet implemented in the javac compiler. As a temporary workaround, the Modules project uses class declarations of the following form to emulate superpackage declarations. The class is compiled by javac like any other class in the module.
File [location]/super_package.java
:
package [superpackage name]; import java.lang.reflect.Superpackage.*; @[superpackage annotations] class super_package { exports [exported types]; uses [required superpackages]; }
For the list of exported types and required superpackages,
replace the character '.' with '$', for example
java.se
becomes java$se
.
As soon as superpackages are implemented at javac, proper superpackage declarations will be used.