Система модулей Java 9
Одним из самых больших изменений в Java 9 является введение системы модулей (Project Jigsaw).
Модуль — это инкапсуляция кода и данных. Код модуля организован в несколько пакетов, каждый из которых содержит классы и интерфейсы Java; данные модуля включают файлы ресурсов и другую статическую информацию.
Важной особенностью модуля Java 9 является наличие файла module-info.class, описывающего модуль в корневом каталоге его артефакта. Артефакт может быть в традиционном формате файла JAR или в формате файла JMOD, недавно добавленном в Java 9. Этот файл компилируется из исходного файла module-info.java в корневом каталоге. Файл объявления модуля может описывать различные характеристики модуля.
В файле module-info.java мы можем использовать новое ключевое слово module для объявления модуля, как показано ниже. Ниже показано самое базовое объявление модуля для модуля com.mycompany.mymodule.
module com.example.mymodule {
}
Создание модуля
Далее давайте создадим модульcom.example.greetings.
Шаг 1
Создайте папку C:\>JAVA\src, затем создайте папку com.example.greetings с тем же именем, что и модуль, в этом каталоге.
Шаг 2
Создайте файл module-info.java в каталоге C:\>JAVA\src\com.example.greetings со следующим кодом:
module com.example.greetings { }
module-info.java используется для создания модуля. На этом шаге мы создали модуль com.example.greetings.
Шаг 3
Добавьте в модуль файл исходного кода. Создайте файл Java9Tester.java в каталоге C:\>JAVA\src\com.example.greetings\com\example\greetings со следующим кодом:
package com.example.greetings;
public class Java9Tester {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Шаг 4
Создайте папку C:\>JAVA\mods, затем создайте папку com.example.greetings в этом каталоге и скомпилируйте модуль в этот каталог:
C:/>JAVA> javac -d mods/com.example.greetings src/com.example.greetings/module-info.java src/com.example.greetings/com/example/greetings/Java9Tester.java
Шаг 5
Запустите модуль и просмотрите вывод:
C:/>JAVA> java --module-path mods -m com.example.greetings/com.example.greetings.Java9Tester Hello World!
module-pathУказывает путь, где расположен модуль.
-mУказывает главный модуль.
Другие расширения
Новые возможности Java 9