Working with Java 9 Modules: A Beginner's Guide

Introduction to Java 9 Modules

Java 9 introduced a new module system that provides better modularization and encapsulation of code. Modules are a way to organize code into self-contained units, making it easier to manage dependencies and ensure better software architecture. In this guide, we'll explore the basics of Java 9 modules and how to work with them.

Defining a Module

In Java 9, you can define a module using the file. This file specifies module dependencies and exports packages for use by other modules.

module com.example.myapp {
requires some.dependency.module;
exports com.example.myapp.package;

Using Modules

To use a module, you need to declare dependencies in your module's and compile your code with the javac command using the --module-path flag.

Sample Java Code with Modules

Here's a simple example of defining and using modules in Java 9:

Module Info:

module com.example.myapp {
requires java.base;
exports com.example.myapp;

Main Class:

package com.example.myapp;
public class Main {
public static void main(String[] args) {
System.out.println("Hello, Java 9 Modules!");


Java 9 modules provide a way to enhance the modularity and organization of your Java applications. They help in managing dependencies and isolating code. As a beginner, understanding the basics of Java 9 modules is a valuable step toward writing more maintainable and scalable Java applications.