Модульность

Создание модуля

Последнее обновление: 01.05.2018

С выходом JDK 9 в языке Java появилась новая возможность - модульность. Модульность позволяет разбить код на отдельные структурные единицы - модули. Фактически модуль представляет группу пакетов или ресурсов, объединенных в одно целое и к которым можно обращаться по имени модуля.

До Java 9 было несколько уровней инкапсуляции функционала. Первый уровень представлял класс, в котором мы могли определить переменные и методы с различным уровнем доступа. Следующий уровень представлял пакет, который, в свою очередь, представлял коллекцию классов. Однако со временем этих уровней оказалось недостаточно. И модуль стал следующим уровнем инкапсуляции, который объединял несколько пакетов.

Модуль состоит из группы пакетов. Также модуль включает список все пакетов, которые входят в модуль, и список всех модулей, от которых зависит данный модуль. Дополнительно (но необязательно) он может включать файлы ресурсов или файлы нативных библиотек.

В качестве названия модуля может использоваться произвольный идентификатор из алфавитно-цифровых символов и знаков подчеркивания. Но рекомендуется, чтобы название модуля соответствовало названию, которого начинаются пакеты этого модуля.

Определим и используем простейший модуль. Допустим, файлы с исходными кодами помещаются в папку C:\java (либо какую-нибудь другую папку на жестком диске). Создадим в этой папке каталог, который назовем demo. Этот каталог будет представлять модуль.

В каталоге demo определим новый файл module-info.java со следующим кодом:

module demo {
}

Этот файл представляет дескриптор модуля (module descriptor). Этот файл может содержать только определение модуля.

С помощью ключевого слова module определяется модуль, который называется demo, то есть так же, как и каталог, в котором данный файл расположен. После имени модуля с помощью фигурных скобок можно определить тело модуля, но в данном случае код модуля не содержит никаких инструкций.

Далее в каталоге demo создадим папку com. В папке com создадим папку metanit, а в папке com/metanit - папку hello.

В папке com/metanit/hello определим новый файл Hello.java:

package com.metanit.hello;

public class Hello{
	
	public static void main(String[] args){
		System.out.println("Hello Demo Module!");
	}
}

Название пакета файла - com.metanit.hello отражает структуру папок, в которых расположен файл. Сам файл определяет класс Hello, который в методе main выводит на консоль строку.

В итоге у нас получится следующая стуктура проекта:

Модули в Java 9

Теперь скомпилируем все это. Для этого вначале перейдем в командной строке/терминале к папке, в которой находится модуль demo.

Затем для компиляции модуля выполним следующую команду:

javac demo/module-info.java demo/com/metanit/hello/Hello.java

После компиляции модуля demo выполним программу с помощью следующей команды:

java  --module-path demo --module demo/com.metanit.hello.Hello

Параметр --module-path указывает на путь к модулю, а --module - на главный класс модуля.

При наборе команды вместо параметра --module-path можно указать его сокращение -p, а вместо параметра --module - сокращение -m.

И на консоли отобразится сообщение "Hello Demo Module!"

Компиляция и выполнение модуля в Java
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850