Как запустить jar файл в командной строке
Перейти к содержимому

Как запустить jar файл в командной строке

  • автор:

Запустите приложение Java из командной строки

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

Здесь мы сосредоточимся на сценарии автономного приложения. С этого момента мы будем называть его JAR-приложением.

В этом руководстве мы сначала узнаем, как создать приложение JAR. Позже мы узнаем, как запускать приложение JAR с аргументами командной строки или без них.

2. Создайте JAR — приложение​

Файл JAR может содержать один или несколько основных классов. Каждый основной класс является точкой входа приложения. Таким образом, файл JAR теоретически может содержать более одного приложения, но для запуска он должен содержать хотя бы один основной класс.

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

Во-первых, давайте посмотрим на быстрый пример того, как скомпилировать наши классы и создать исполняемый JAR с файлом манифеста:

 $ javac com/foreach/jarArguments/*.java $ jar cfm JarExample.jar ../resources/example_manifest.txt com/foreach/jarArguments/*.class 

Неисполняемый JAR — это просто файл JAR, для которого не определен основной класс в файле манифеста. Как мы увидим позже, мы по-прежнему можем запускать основной класс, содержащийся в самом JAR-файле.

Вот как мы создадим неисполняемый JAR без файла манифеста:

 $ jar cf JarExample2.jar com/foreach/jarArguments/*.class 

3. Аргументы командной строки Java​

Как и любое приложение, приложение JAR принимает любое количество аргументов, включая нулевые аргументы. Все зависит от потребности приложения.

Это позволяет пользователю указать информацию о конфигурации при запуске приложения.

В результате приложение может избежать жестко закодированных значений и по-прежнему может обрабатывать множество различных вариантов использования.

Аргумент может содержать любые буквенно-цифровые символы, символы Юникода и, возможно, некоторые специальные символы, разрешенные оболочкой, например, @.

Аргументы разделяются одним или несколькими пробелами. Если аргумент должен содержать пробелы, пробелы должны быть заключены в кавычки. Либо одинарные, либо двойные кавычки работают нормально.

Обычно для типичного Java-приложения при вызове приложения пользователь вводит аргументы командной строки после имени класса.

Однако это не всегда так для приложений JAR.

Как мы уже говорили, точкой входа основного класса Java является метод main . Все аргументы представляют собой String и передаются основному методу в виде массива String .

При этом внутри приложения мы можем преобразовать любой элемент массива String в другие типы данных, такие как char , int , double , их классы-оболочки или другие подходящие типы.

4. Запустите исполняемый файл JAR с аргументами​

Давайте посмотрим на основной синтаксис для запуска исполняемого файла JAR с аргументами:

java -jar имя-файла-jar [аргументы …]

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

Вот пример с двумя аргументами:

 $ java -jar JarExample.jar "arg 1" arg2@ 

Мы увидим этот вывод в консоли:

#8. Компиляция и выполнение java программы с командной строки

Продолжаем курс программирования java для android-разработчиков. Данный урок научит вас запускать java программы из командной строки, для общего понимания процесса компиляции и запуска программ на языке java.

После создания простого приложения, которое выводит что-то на экран, вы должны компилировать ваш код и запустить его.

Независимо от того, какую операционную систему вы используете, Linux, Mac или Windows, если на вашем компьютере установлен JDK (Java Development Kit), вы можете в консоли набрать следующие команды чтобы скомпилировать и запустить программу:

  • javac (или javac.exe)
  • java (или java.exe)

В первом случае будет вызван компилятор javac.exe, а во втором случае – запускалка java.exe, которая стартует нашу программу. Эти файлы лежат в папке bin вашего JDK.

Рассмотрим на примере. Вспомним код из первого урока – создадим файл с названием Main.java.

public class Main < public static void main(String[] args) < System.out.println("Hello, World!"); >>

Идем в папку, куда среда разработки сохранила проект. Я работаю в IntelliJIDEA, и мой проект лежит в C:\Users\имя пользователя\IdeaProjects\название проекта\src. Находим там наш файл Main.java. Консоль вызывается так: щелкаем правой клавишей мыши с зажатой клавишей Shift на пустом месте в папке, где лежит файл нашей программы, и выбираем пункт контекстного меню “Открыть окно команд”.
Для того, чтобы скомпилировать его нужно набрать в консоли команду javac и в качестве параметра передать имя нашего файла:

javac Main.java

Эта команда вызовет компилятор, который создаст файл Main.class, содержащий скомпилированный код нашей java программы.

Чтобы запустить ее, нужно ввести команду java с именем класса (не файла!) в качестве параметра:

java Main.class //так неправильно
java Main //так правильно

Аргументы

В главном классе нашей программы есть метод public static void main(. ) , который в качестве аргумента принимает массив String[] args.

Массив строк в качестве аргумента можно передать в программу при запуске из командной строки .

Любой массив в Java имеет переменную длину, это число элементов в этом массиве.

Добавим такой код в класс Main.java:

public class Main < public static void main(String[] args) < for (int i = 0; i < args.length; i++) < System.out.println(args[i]); >> > 

И чтобы скомпилировать и запустить программу с аргументами, пишем в консоль:

javac Main.java java Main arg0 arg1 arg2

Упражнение

Создайте программу, которая выводит аргументы, переданные при запуске, в одну строку.

Дополнительное чтение:

  • Сборка и выполнение Java программ
  • Исключения (Exception) и их обработка в Java

JAR-файлы в Windows – как открывать, редактировать и конвертировать

Файл с расширением .JAR представляет собой файл Java Archive, используемый для хранения Java программ и игр в одном файле. Некоторые содержат файлы, которые заставляют их работать как отдельные приложения, а другие содержат библиотеки программ для использования другими программами.

JAR-файлы сжаты в ZIP и часто хранят такие вещи, как файлы CLASS, файлы манифеста и ресурсы приложения, такие как изображения, звуковые клипы и сертификаты безопасности. Так как они могут хранить сотни или даже тысячи файлов в сжатом формате, файлами JAR легко обмениваться и перемещать.

Мобильные устройства с поддержкой Java могут использовать файлы JAR в качестве файлов игры, а некоторые веб-браузеры содержат темы и надстройки в формате JAR.

Как открыть файлы JAR

Java Runtime Environment (JRE) должен быть установлен для того, чтобы открыть исполняемый JAR-файл, но обратите внимание, что не все JAR-файлы имеют формат исполняемого файла. После установки вы можете просто дважды щелкнуть файл JAR, чтобы открыть его.

JAR-файлы в проводнике системы Windows

Некоторые мобильные устройства имеют встроенную JRE. После установки приложения Java также можно открывать в веб-браузере, например Firefox, Safari, Edge или Internet Explorer (но не в Chrome).

Поскольку JAR-файлы сжимаются с помощью ZIP, любой распаковщик файлов может открыть его, чтобы отобразить содержимое, которое находится внутри. Это включает в себя такие программы, как 7-Zip, PeaZip и jZip.

Другой способ открыть файлы JAR – использовать следующую команду в командной строке, заменив yourfile.jar именем вашего собственного файла JAR:

java -jar yourfile.jar

Ошибки открытия файлов JAR

Из-за настроек безопасности в операционной системе Windows и в некоторых веб-браузерах весьма часто можно увидеть ошибки при попытке доступа к приложениям Java.

Например, «Java Application Blocked» может отображаться при попытке загрузки Java-апплета. Это можно исправить, установив уровень безопасности в апплете панели управления Java.

Если вы не можете открыть апплеты Java даже после установки JRE, сначала убедитесь, что Java включена в вашем браузере и что панель управления правильно настроена для использования Java. Затем полностью перезапустите браузер, закрыв все открытые окна, а затем снова откройте программу.

Также убедитесь, что вы используете последнюю версию Java. Если нет, вернитесь к ссылке JRE выше и установите последнюю версию.

Как конвертировать файл JAR

Вы можете декомпилировать файлы CLASS JAR-файла в файлы Java с помощью веб-сайта JavaDecompilers.com. Загрузите туда свой JAR-файл и выберите, какой декомпилятор использовать.

Преобразование приложения Java для использования на платформе Android потребует преобразования файла JAR в APK. Одним из вариантов может быть запуск файла JAR в эмуляторе Android, чтобы программа автоматически создала файл APK. Однако, самый простой способ получить Java-программу на Android – просто скомпилировать APK из исходного исходного кода.

Файлы WAR также являются файлами Java Web Archive, но вы не можете преобразовать файл JAR напрямую в файл WAR, поскольку формат WAR имеет особую структуру, которой нет в JAR. Вместо этого вы можете создать WAR-файл и затем добавить JAR-файл в каталог lib, чтобы классы в JAR-файле были доступны для использования. WizToWar может помочь вам сделать это.

Создать ZIP-файл из JAR-файла так же просто, как переименовать расширение файла из .JAR в .ZIP. Это, на самом деле, не выполняет преобразование файлов, но позволяет программам, использующим ZIP-файлы, таким как 7-Zip или PeaZip, легче открывать файл JAR.

Дополнительная информация о формате JAR

Если вам нужна помощь в упаковке программ в файлы JAR, перейдите по этой ссылке для получения инструкций на веб-сайте Oracle.

Только один файл манифеста может быть включен в архив JAR, и он должен находиться в расположении META-INF/MANIFEST.MF. Он должен следовать синтаксису имени и значения, разделенных двоеточием, как Manifest-Version:1.0. Этот файл MF может указывать классы, которые должно загружать приложение.

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

Developing.ru

Всем привет .
Вот такая проблема:
В JBuilder запускается проект с параметром -Xmx110m (иначе вылетает OutOfMemoryError)- работает без ошибок
Пакую все в jar-файл, например, phone.jar. Запуск через обычный double click не идет.
Если ручками в консоли:

java -Xmx110m -jar phone.jar

Вопрос:
Как запустить jar с этим параметром (-Xmx110m) через double click ?

Иначе теряется весь смысл «Executable Jar File».
Простого юзера не заставишь что-то там набирать в «какой-то там консоли». Ну вы меня понимаете.

Как вариант — глобально задать выделение памяти 110m, но как?
Какой set . .

Спасибо за внимание.

evgeny_d Сообщения: 62 Зарегистрирован: 23 мар 2004, 08:31

А что, исполняемые jar-файлы только для этого и нудны??
А я думал, что для того, чтобы не париться и не искать конкретный класс, который надо запустить и т.п.

ИМХО, для того, чтобы пользователь не парился и мог запустить java-программу надо писать файлики phone.sh или phone.bat — по ситуации.

Oleg_S Сообщения: 27 Зарегистрирован: 22 апр 2004, 01:42 Откуда: Chisinau
А что, исполняемые jar-файлы только для этого и нудны??

Конечно же нет.
А из батника получаешь на долю секунды «моргание» консоли. Но так разумеется можно решить задачку.
Если обычную прогу легко запускаешь из jar, я надеялся, что и с параметром это тоже возможно.

evgeny_d Сообщения: 62 Зарегистрирован: 23 мар 2004, 08:31

sh скрипт — это всего лишь средство. наиболее простое ИМХО.

Можно ведь и на C++, например то же самое написать, тогда не будет «моргания». Правда сам не пробовал, но теоретически — должно работать.

Например, запостить такой вопросец в «Решите мне задачку» или на sourceforge.net посмотреть — наверняка кто-нибудь подобный «лаунчер» уже писал

DeeJayC Сообщения: 492 Зарегистрирован: 17 фев 2004, 11:26 Откуда: Ленинград (который Город на Неве) Контактная информация:

Есть такой «лаунчер»
Вместе с JDK/JRE идёт. javaw.exe называется.

«Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!» (c)

viel spass, DeeJayC

evgeny_d Сообщения: 62 Зарегистрирован: 23 мар 2004, 08:31

Однако это не решает упомянутой проблемы.

А «лаунчером» я назвал не java.exe или javaw.exe, а программу, которая как раз его запустит %)

Можно это сделать легко — через sh и bat, или посложнее — исполнив программу из другой .exe программы-лаунчера.

К слову сказать, быть может проблемка разрешается при помощи соответствующего набора параметров в META-INF/manifest.mf в исполняемом jar-файле

Oleg_S Сообщения: 27 Зарегистрирован: 22 апр 2004, 01:42 Откуда: Chisinau
Однако это не решает упомянутой проблемы.
при помощи соответствующего набора параметров в META-INF/manifest.mf в исполняемом jar-файле

Какие нужны параметры ? Кроме Main-Class: в моем случае там ничего нет

И повторюсь по поводу глобального выделения памяти для java программы — кто-то в курсе как это сделать? Тогда все должно решиться

DeeJayC Сообщения: 492 Зарегистрирован: 17 фев 2004, 11:26 Откуда: Ленинград (который Город на Неве) Контактная информация:

есть роскошный способ. Ассоциировать в win32 клик на jar с открытием javaw с параметрами

«Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!» (c)

viel spass, DeeJayC

evgeny_d Сообщения: 62 Зарегистрирован: 23 мар 2004, 08:31
DeeJayC писал(а): роскошный способ
Bas Сообщения: 21 Зарегистрирован: 10 мар 2004, 21:46
Oleg_S писал(а): Вопрос:
Как запустить jar с этим параметром (-Xmx110m) через double click ?

Я бы посоветовал постараться пересмотреть саму программу и переписать ее так, что бы дополнительная память не требовалась бы. Все параметры -Х — это нестандартные параметры JVM, и нет никакой гарантии, что в следующих версиях Java они будут поддерживаться. Скорее всего, именно из-за этого и нет другого способа (а может просто я не знаю) установить эти параметры, без использования командной строки.

На самом деле, есть всевозможные лаунчеры (например InstallAnywhere), которые умеют создавать для проекта .exe файлы, управляемые с помощью конфигурационных файлов, где можно установить все нужные параметры для JVM — будет работать.

  • Системное и прикладное программирование
  • ↳ Win API, Shell..
  • ↳ C и C++
  • ↳ Delphi и Pascal
  • ↳ Программирование на Pascal и Delphi (Object Pascal)
  • ↳ Все вопросы ООП
  • ↳ Компоненты в Delphi
  • ↳ Delphi и WinAPI, ActiveX и OLE , COM и DCOM, и т.д
  • ↳ Java
  • ↳ MS Office и VB(A).
  • ↳ Ассемблер
  • WEB программирование
  • ↳ JScript, VBScript, DHTML.
  • ↳ Perl, PHP, ASP .
  • Некатегоризированное
  • ↳ Вопрошайка
  • ↳ SQL
  • ↳ Алгоритмы
  • ↳ Дизайн и графика
  • Администрирование
  • ↳ Apache, IIS.
  • ↳ Операционные системы
  • Работа
  • ↳ Вакансии и заказы для программистов
  • ↳ Поиск работы и заказов.
  • ↳ Решите мне задачку
  • ↳ задачи на Паскале и Delphi
  • ↳ задачи на C и C++
  • ↳ задачи на Basic и Visual Basic (VB)
  • Прочее
  • ↳ Жалобная книга
  • ↳ Флейм.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *