In my
previous post, I explained how to create run ‘Hello World’ application using
java9 modularity. In this post, I am going to explain how can you work with two
or more modules together.
As you see
above image, there are two modules.
a. main
b.
math.arithmetic
'main.arithmetic'
module contains all the packages and classes that are used to perform
arithmetic operations. 'main' module depends on 'main.arithmetic' module to
compute arithmetic operations.
Step 1:
Create main.arithmetic
module.
Create
ArithmeticUtil.java and module-info.java files by following below directory
structure.
$tree schoolmath/ schoolmath/ └── src └── math.arithmetic ├── com │ └── sample │ └── util │ └── ArithmeticUtil.java └── module-info.java
ArithmeticUtil.java
package com.sample.util; public class ArithmeticUtil { public static int add(int a, int b) { return a + b; } public static int sub(int a, int b) { return a - b; } public static int mul(int a, int b) { return a * b; } public static int div(int a, int b) { return a / b; } }
module-info.java
module math.arithmetic{ exports com.sample.util; }
Above
statement tells 'com.sample.util' package can be exposed outside of the module.
Step 2:
Define 'main' module
by following below directory structure.
$tree schoolmath/ schoolmath/ └── src ├── main │ ├── com │ │ └── sample │ │ └── app │ │ └── App.java │ └── module-info.java └── math.arithmetic ├── com │ └── sample │ └── util │ └── ArithmeticUtil.java └── module-info.java 9 directories, 4 files
App.java
package com.sample.app; import com.sample.util.ArithmeticUtil; public class App { public static void main(String args[]) { System.out.println("Sum of 10 and 20 is : " + ArithmeticUtil.add(10, 20)); System.out.println("Subtraction of 10 and 20 is : " + ArithmeticUtil.sub(10, 20)); System.out.println("Multiplication of 10 and 20 is : " + ArithmeticUtil.mul(10, 20)); System.out.println("Division of 10 and 20 is : " + ArithmeticUtil.div(10, 20)); } }
module-info.java
module main{ requires math.arithmetic; }
Above
snippet tells that, main module depends on 'math.arithmetic' module.
Step 3:
Compile and run
App.java.
go inside
schoolmath directory and execute below command to compile the classes.
javac
--module-source-path src -d out src/main/com/sample/app/App.java
$javac --module-source-path src -d out src/main/com/sample/app/App.java $ $tree . ├── out │ ├── main │ │ ├── com │ │ │ └── sample │ │ │ └── app │ │ │ └── App.class │ │ └── module-info.class │ └── math.arithmetic │ ├── com │ │ └── sample │ │ └── util │ │ └── ArithmeticUtil.class │ └── module-info.class └── src ├── main │ ├── com │ │ └── sample │ │ └── app │ │ └── App.java │ └── module-info.java └── math.arithmetic ├── com │ └── sample │ └── util │ └── ArithmeticUtil.java └── module-info.java 18 directories, 8 files
Execute
below command to run the application.
java
--module-path out -m main/com.sample.app.App
$java --module-path out -m main/com.sample.app.App Sum of 10 and 20 is : 30 Subtraction of 10 and 20 is : -10 Multiplication of 10 and 20 is : 200 Division of 10 and 20 is : 0
You can
get complete working application here.
No comments:
Post a Comment