Automatic module do not have module-info.
but that is named automatically or we indicate module-name with manifest.mf.
public class AutoProject {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("i am auto module");
}
}
public class NamedProject {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
AutoProject.main(null);
}
}
make jar file of automatic module from classfiles.
you can use manifest.mf file , if you indicate module name
by using option -m.
C:\Users\java\Documents\NetBeansProjects> jar -cvfm AutoProject\dist\AutoProject.jar AutoProject\manifest.mf AutoProject\build\classes
マニフェストが追加されました
AutoProject/build/classes/を追加中です(入=0)(出=0)(0%格納されました)
AutoProject/build/classes/.netbeans_automatic_buildを追加中です(入=0)(出=0)(0%格納されました)
AutoProject/build/classes/.netbeans_update_resourcesを追加中です(入=0)(出=0)(0%格納されました)
AutoProject/build/classes/autoproject/を追加中です(入=0)(出=0)(0%格納されました)
AutoProject/build/classes/autoproject/AutoProject.classを追加中です(入=595)(出=365)(38%収縮されました)
named module reffers automatic module
named module is NamedModule
automatic module is AutoProject
C:\Users\java\Documents\NetBeansProjects\NamedProject\src>java --module-path C:\Users\java\Documents\NetBeansProjects\AutoProject\dist\AutoProject.jar;C:\Users\java\Documents\NetBeansProjects\NamedProject\dist\NamedProject.jar -m NamedModule
i am auto module
noname module can reffers named module .
we can use jar --add-modules option for indicate using named module.
In Addition, automatic module reffers named module , same as noname module reffers named module.
public class NonameProject {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ChildProject.main(null);
System.out.println("i am noname module");
}
}
module ChildModule {
exports childproject;
requires ParentModule;
}
public class ChildProject {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Object o = Factory.create();
try{
Method m = o.getClass().getMethod("method");
m.invoke(o);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
C:\Users\java\Documents\NetBeansProjects> javac --module-path C:\Users\java\Documents\NetBeansProjects\ChildProject\dist\ChildProject.jar --add-modules ChildModule nonameproject\NonameProject.java
C:\Users\java\Documents\NetBeansProjects> java --module-path C:\Users\java\Documents\NetBeansProjects\ChildProject\dist\ChildProject.jar;C:\Users\java\Documents\NetBeansProjects\ParentProject\dist\ParentProject.jar --add-modules ChildModule nonameproject.NonameProject
i am parentproject method
i am noname module
Automatic module refers noname module
C:\Users\java\Documents\NetBeansProjects\AutoProject\build\classes>java --class-path C:\Users\java\Documents\NetBeansProjects\NonameProject\dist\NonameProject.jar;. autoproject.AutoProject
i am noname module
i am auto module