

This article contains Java 9 module example with detail explanation. Java 9 provide module based development. Main focus of java 9 is architecture level changes where as java 8 was on way of coding. Most important and useful feature of java 9 is module based development. Here is Java 9 module example:
Here is inbuilt modules structures which are in Java 9 JDK:

Java 9 module System Structure
Table of Contents
What is module in Java 9?
module is collection more java files , jar files, resource files and configuration files. There some rules of module declaration. Those are as under:
- module has unique name
- module-info.java file must be at root location inside module see above folder structure.
- requires : What to need
- exports : What to provide
NOTE: requires and exports are not keywords
Example:
Module Structure:

Java 9 module example Structure
module-info.java
- module-info.java file must be at root location inside module see above folder structure.
- class name must be module-info but there are no strict rules for case sensitivity. We can also like MODULE-INFO.JAVA or Module-Info.java ect…
- javadeveloperzone.base is name of module.
module javadeveloperzone.base{
}Student.java
- Student.java class is like normal class as like other no need of any other changes in this. its available inside com.javadeveloperzone package.
package com.javadeveloperzone;
public class Student{
public int no;
public String name;
public Student(int no,String name){
this.no=no;
this.name=name;
}
public String getName(){
return this.name;
}
}Demo.java
Demo.javais another class incom.javadeveloperzonepackage.
package com.javadeveloperzone;
import com.javadeveloperzone.Student;
public class Demo{
public static void main(String ... args){
System.out.println("Niceee... weldone... welcome to your first module program..");
Student student= new Student(1,"JavaDeveloperZone");
System.out.println(student.getName());
}
}Commands to run module
- Using javac just compile all class in package as well as module-info.java file.
- using jar command create jar of module which contains com.javadeveloperzone package as well as module.info.class at root of structure.
- using java command run module
- –module-path indicate that module path
- -m [module_name]/[main_class_of_module]
- module-path must have all module with unique name, If modules have same name in same module-path than java will throw exception when try to run module.
echo "Compiling Class files of module" javac -d output/classes base/com/javadeveloperzone/*.java javac -d output/classes base/Module-info.java echo "Creating Jar of module" jar -c -f output/mlib/javadeveloperzone.base.jar -C output/classes . echo "Running javadeveloperzone.base module..." java --module-path output/mlib -m javadeveloperzone.base/com.javadeveloperzone.Demo
Was this post helpful?
Let us know if you liked the post. That’s the only way we can improve.
