JLink | Компоновщик Java
Одним предложением мы можем сказать, что Jlink используется для создания нашей собственной настраиваемой небольшой JRE (Java RunTime Environment).
JLink - это новый инструмент командной строки Java (доступный в JDK_HOME / bin), который позволяет нам связывать наборы только необходимых модулей (и их зависимости) для создания среды выполнения (нашей собственной JRE). Обычно мы используем JRE по умолчанию для запуска наших программ, которые предоставляются Oracle Corporation, но если нам нужна наша собственная JRE, например geeks jre, мы можем перейти на JLINK.
Итак, зачем создавать нашу собственную настраиваемую JRE?
Предположим, вы написали небольшую программу для сложения двух чисел. Теперь это очень простая программа на java. Мы можем запустить нашу программу с JRE по умолчанию.
public class Practice { public static void main(String[] args) { System.out.println( 10 + 5 ); } } |
Для запуска этой программы он будет использовать файл Practice.class, файл String.class, файл System.class и файл Object.class (поскольку каждый класс в java является дочерним классом класса Object). Таким образом, для запуска этой программы нам потребуются в основном три-четыре класса.
Мы можем легко запустить эту программу с JRE по умолчанию, но JRE, предоставляемая корпорацией Oracle, содержит более 4300 предопределенных файлов .class. Когда мы запускаем эту программу и используем JRE по умолчанию, нам нужно поддерживать все 4300+ классов на нашей машине, и, следовательно, память тратится впустую (размер JRE9 составляет 204 МБ). Для запуска программы размером 4 КБ какая польза от поддержки JRE размером 204 МБ. Итак, на машине Клиента много памяти теряется. Итак, лучше всего подходит настроенная JRE, которая будет содержать только эти четыре класса на клиентской машине. А настраиваемая JRE лучше всего подходит, когда вы используете в программе определенное количество классов.
Итак, самое большое использование или преимущество настраиваемой JRE заключается в том, что мы можем создать небольшую JRE, используя только необходимые модули. Следовательно, основное намерение Jlink - избежать доставки всего, а также работать на очень маленьких устройствах с небольшим объемом памяти.
У JLink также есть список плагинов, которые помогут оптимизировать наши решения.
Синтаксис:
jlink [options] –module-path modulepath –add-modules module [, module…]
Структура приложения на основе модуля:
Пример JLink с использованием модульного приложения:
module-info.java
module demoModule { // keeping it empty } |
Practice.java
package packTest public class Practice { public static void main(String[] args) { System.out.println( "JLINK DEMO" ); } } |
Чтобы скомпилировать приложение на основе модуля:
javac --module-source-path src -d com -m -demoModule
Теперь для запуска этой программы нам нужны только два модуля: один - demoModule, а другой - модуль java.base (содержит класс String, класс Object и класс System). Используя эти два модуля, мы можем создать нашу собственную настроенную JRE. Поэтому добавьте модуль java.base в каталог src.
Теперь мы можем создать нашу собственную JRE, используя следующую команду JLink:
jlink --module-path src --add-modules demoModule, java.base --output demojre
Теперь наш собственный jre создан. Теперь перейдите в созданную папку jre bin, например, demmojre / bin
Теперь для запуска: - java -m demoModule / packTest.Practice
Выход:
JLINK ДЕМО
Чтобы узнать размер нашего собственного настроенного jre, мы можем проверить его свойства.
Для JLink доступен ряд плагинов. Некоторые из них: -
- исключить файлы
- claas-for-name
- include-locales
- vm
- системные модули
- и многое другое ……… ..
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .