Java module-info Essentials, from Binary code point of view
Java module system has been introduced since Java 9, via the project Jigsaw . Each java module contains a module-info.class file, for the specification of current module. Here we are trying to make an introduction of the module-info file. Binary Code is always the best document . So let's inspect an example module-info: module info in java.base.jmod file, which is the biggest java module in current OpenJDK . Source code: master/src/java.base/share/classes/module-info.java The binary file is located at: JAVA_HOME/jmods/java.base.jmod - classes/module-info.class We can open the module-info.class file using Java Class Viewer , as the screen shots bellow. The module-info.class file is a special type of .class file, and it has the following key differences from other normal .class file: 1. module-info.class do not have super class, interfaces, fields, methods. From the screen shot bellow, we can find that the super_class node's value is " 0 ", whic...