23 октября 2012 г.

Запуск jar-файла из командной строки

Сейчас я покажу, как можно запустить простенькую программу на java безо всякой среды вроде сервера приложений. Достаточно одного класса, в котором будет определён метод main.

package com.blogspot;
public class DeveloperRemarks {
public static void main(String[] args) {
if (args.length == 0) {
System.out
.println("Передайте в качестве параметра командной строки текст, который хотите увидеть.");
} else {
System.out.println("Вы ввели: " + args[0]);
}
System.out.println("Исходники доступны на developer-remarks.blogspot.com");
}
}
В командной строке при запуске программы необходимо передать текст, который будет отображён на экране. В противном случае будет выведено соответствующее сообщение. Все параметры, переданные программе, будут содержаться в массиве строк args, который принимает метод main. Если не передано ни одного параметра, длина массива будет равна нулю.

Теперь настроим в Eclipse возможность запуска jar-файла из терминала. Для этого сначала необходимо создать конфигурацию запуска. Выберите в верхнем меню Run - Run Configurations. Откроется следующее окно:


В списке слева выберите тип приложения: Java Application. Там создайте новую конфигурацию как показано на скриншоте. Для этого выберите целевой проект и класс, в котором есть метод main.

Теперь мы готовы к тому, чтобы экспортировать наш проект в запускаемый jar-файл. Для этого кликните на проекте правой кнопкой мыши, выберите "Export...", откроется следующее окно:


В древовидном списке выберите Runnable Jar file. Поиск можно значительно упростить, если отфильтровать тип проекта по названию. Нажмите Finish. После этого откроется окно для настроек экспорта:


В нём выберите созданную ранее конфигурацию запуска. Затем укажите полное имя jar-файла. В разделе "Library handling" выберите "Extract required libraries into generated JAR" (распаковать необходимые библиотеки внутрь создаваемого архива). Нажмите Finish и исполняемый архив будет создан.

Поскольку в данном примере нет зависимостей от других библиотек, то мы выбираем первый пункт. Но если бы у нас было несколько десятков, а то и сотен зависимостей, правильнее было бы выбрать третий пункт "Copy required libraries into a sub-folder next to the generated JAR" (копировать необходимые библиотека в поддиректорию, часть имени которой совпадает с создаваемым архивом) во избежание "раздувания" исполняемого файла. Если бы мы выбрали третий пункт, необходимые библиотеки были бы скопированы в отдельную папку.

Теперь откройте терминал и перейдите в ту директорию, где был создан исполняемый jar-файл. Введите следующую команду:
java -jar developer-remarks.jar привет,\ мир\!
Таким образом вы указываете интерпретатору java запустить наш архив. Обратите внимание, что пробел и восклицательный знак в командной строке необходимо экранировать обратным слэшем.

Продемонстрированный подход может быть полезен в образовательных и тестовых целях. Например, для создания клиента, который вызовет EJB и выведет результат его работы в консоль. Достоинством данного подхода является запуск jar-архива без какого бы то ни было окружения. Достаточно иметь JDK/JRE. Исходники доступны здесь.

Комментариев нет:

Отправить комментарий