Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java как запустить jar файл

Работа с Java в командной строке

От простого к .

Каждая программа обычно содержится в отдельном каталоге. Я придерживаюсь правила создавать в этом каталоге по крайней мере две папки: src и bin. В первой содержатся исходные коды, во второй — результат компиляции. В данных папках будет структура каталогов, зависящая от пакетов.

Один файл

Можно сделать и без лишних папок.
Берем сам файл HelloWorld.java.
Переходим в каталог, где лежит данный файл, и выполняем команды.
В данной папке появится файл HelloWorld.class. Значит программа скомпилирована. Чтобы запустить

Отделяем бинарные файлы от исходников

Теперь сделаем тоже самое, но с каталогами. Создадим каталог HelloWorld и в нем две папки src и bin.
Компилируем
Здесь мы указали, что бинарные файлы будут сохраняться в отдельную папку bin и не путаться с исходниками.

Используем пакеты

А то, вдруг, программа перестанет быть просто HelloWorld-ом. Пакетам лучше давать понятное и уникальное имя. Это позволит добавить данную программу в другой проект без конфликта имен. Прочитав некоторые статьи, можно подумать, что для имени пакета обязательно нужен домен. Это не так. Домены — это удобный способ добиться уникальности. Если своего домена нет, воспользуйтесь аккаунтом на сайте (например, ru.habrahabr.mylogin). Он будет уникальным. Учтите, что имена пакетов должны быть в нижнем регистре. И избегайте использования спецсимволов. Проблемы возникают из-за разных платформ и файловых систем.

Поместим наш класс в пакет с именем com.qwertovsky.helloworld. Для этого добавим в начало файла строчку
В каталоге src создадим дополнительные каталоги, чтобы путь к файлу выглядел так: src/com/qwertovsky/helloworld/HelloWorld.java.
Компилируем
В каталоге bin автоматически создастся структура каталогов как и в src.

Если в программе несколько файлов

HelloWorld.java
Calculator.java
Adder.java

Ошибка возникла из-за того, что для компиляции нужны файлы с исходными кодами классов, которые используются (класс Calculator). Надо указать компилятору каталог с файлами с помощью ключа -sourcepath.
Компилируем

Если удивляет результат

Есть возможность запустить отладчик. Для этого существует jdb.
Сначала компилируем с ключом -g, чтобы у отладчика была информация.

Отладчик запускает свой внутренний терминал для ввода команд. Справку по последним можно вывести с помощью команды help.
Указываем точку прерывания на 9 строке в классе Calculator

Запускаем на выполнение.

Чтобы соориентироваться можно вывести кусок исходного кода, где в данный момент находится курссор.

Узнаем, что из себя представляет переменная а.

Читать еще:  Ошибка вызова api функции

Выполним код в текущей строке и увидим, что sum стала равняться 2.

Поднимемся из класса Adder в вызвавший его класс Calculator.

Удаляем точку прерывания

Можно избежать захода в методы, используя команду next.

Проверяем значение выражения и завершаем выполнение.

Хорошо бы протестировать

Запускаем. В качестве разделителя нескольких путей в classpath в Windows используется ‘;’, в Linux — ‘:’. В консоли Cygwin не работают оба разделителя. Возможно, должен работать ‘;’, но он воспринимается как разделитель команд.

Создадим библиотеку

Класс Calculator оказался полезным и может быть использован во многих проектах. Перенесем всё, что касается класса Calculator в отдельный проект.

Измените также назавания пакетов в исходных текстах. В HelloWorld.java нужно будет добавить строку

Делаем архив jar

С помощью ключа -C мы запустили программу в каталоге bin.

Надо узнать, что у библиотеки внутри

Можно распаковать архив zip-распаковщиком и посмотреть, какие классы есть в библиотеке.
Информацию о любом классе можно получить с помощью дизассемблера javap.

Из результата видно, что класс содержит кроме пустого конструктора, ещё один метод sum, внутри которого в цикле вызывается метод add класса Adder. По завершении метода sum, вызывается Adder.getSum().
Без ключа -c программа выдаст только список переменных и методов (если использовать -private, то всех).

Лучше снабдить библиотеку документацией

Изменим для этого класс калькулятора.

Документацию можно создать следующей командой. При ошибке программа выдаст список возможных опций.

В результате получиться следующее

Можно подписать jar-архив

Если требуется подписать свою библиотеку цифровой подписью, на помощь придут keytool и jarsigner.
Генерируем подпись.

Генерируем Certificate Signing Request (CSR)

Содержимое полученного файла отправляем в центр сертификации. От центра сертификации получаем сертификат. Сохраняем его в файле (например, qwertokey.cer) и импортируем в хранилище

Файл qwertokey.cer отправляем всем, кто хочет проверить архив. Проверяется он так

Использование библиотеки

Есть программа HelloWorld, которая использует библиотечный класс Calculator. Чтобы скомпилировать и запустить программу, нужно присоединить библиотеку.
Компилируем

Собираем программу

Это можно сделать по-разному.

Первый способ

Здесь есть тонкости.
В строке

не должно быть пробелов в конце.
Вторая тонкость описана в [3]: в этой же строке должен стоять перенос на следующую строку. Это если манифест помещается в архив сторонним архиватором.
Программа jar не включит в манифест последнюю строку из манифеста, если в конце не стоит перенос строки.
Ещё момент: в манифесте не должно быть пустых строк между строками. Будет выдана ошибка «java.io.IOException: invalid manifest format».

Читать еще:  Java это что

При использовании команды echo надо следить только за пробелом в конце строки с main-class.

Второй способ

В данном способе избегаем ошибки с пробелом в main-class.

Третий способ

Включили код нужной библиотеки в исполняемый файл.

Запуск исполняемого jar-файла

Файл calculator.jar исполняемым не является. А вот helloworld.jar можно запустить.
Если архив был создан первыми двумя способами, то рядом с ним в одном каталоге должна находится папка lib с файлом calculator.jar. Такие ограничения из-за того, что в манифесте в class-path указан путь относительно исполняемого файла.

При использовании третьего способа нужные библиотеки включаются в исполняемый файл. Держать рядом нужные библиотеки не требуется. Запускается аналогично.

Как быть с приложениями JavaEE

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

Структура архива JavaEE-приложения должна соответствовать определенному формату. Например

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

Надеюсь, данная статья станет для кого-нибудь шпаргалкой для работы с Java в командной строке. Данные навыки помогут понять содержание и смысл Ant-скриптов и ответить на собеседовании на более каверзные вопросы, чем «Какая IDE Вам больше нравится?».

Запуск JAR-файла в Windows

У меня есть файл JAR с именем файл HelloWorld.банку. Чтобы запустить его, я выполняю следующую команду в окне командной строки:

это работает нормально, но как мне выполнить его с двойным щелчком мыши вместо этого? Нужно ли мне устанавливать какое-либо программное обеспечение?

21 ответ:

самый простой маршрут, вероятно, обновление или переустановка среды выполнения Java (JRE).

  • откройте Проводник Windows, в меню Сервис выберите ‘ Параметры папки. —
  • перейдите на вкладку типы файлов, прокрутите вниз и выберите тип файла JAR.
  • Нажмите кнопку Дополнительно.
  • в диалоговом окне изменить тип файла выберите Открыть в поле действия и нажмите кнопку Изменить.
  • Нажмите кнопку Обзор и перейдите расположение интерпретатора Java javaw.исполняемый.
  • в приложении, используемом для выполнения действия поля, необходимо отобразить что-то похожее на C:Program FilesJavaj2re1.4.2_04binjavaw.exe» -jar «%1» % (Примечание: часть, начинающаяся с «javaw», должна быть точно такой же; другая часть имени пути может варьироваться в зависимости от того, какую версию Java вы используете), затем нажмите кнопки OK, пока все диалоговые окна не будут закрыты.
Читать еще:  Как установить java

в Windows Vista или Windows 7, ручной редактор ассоциаций файлов была удалена.

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

Если вам нужно распространить ваши .jar-файл и сделать его работоспособным на компьютерах Windows других людей, вы можете сделать простой .bat файл как это в командной строке:

и место .bat-файл в том же каталоге, что и ваш .файл jar.

если у вас есть jar-файл с именем Example.jar, следуйте этим правилам:

  1. открыть notepad.exe
  2. пишем : java -jar Example.jar
  3. сохраните его с расширением .bat
  4. скопируйте его в каталог, который имеет .jar file
  5. дважды щелкните его, чтобы запустить свой .jar file

интересный побочный эффект этого вызывает проблему при запуске запускаемых файлов jar в командной строке.

Если вы попытаетесь (в командной строке)

нет радости, потому что это переводится на следующее (Это не работает):

javaw.exe-jar jarfile.параметр банку

однако следующая команда работает:

java.ехе -банку файла jarfile.параметр банку

Если вы измените ассоциацию в файловом менеджере, как описано выше:

«C:Program файлыJavaj2re1.4.2_04binjava.exe «- jar «%1″%*

затем вы можете ввести:

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

Если вы запустите эти файлы jar, дважды щелкнув их в windows, никакие параметры не будут переданы, поэтому ваш код Java должен обрабатывать исключение переполнения стека и включать функцию «нажать клавишу» в конце, или окно просто исчезнет.

для того, чтобы передать параметр в windows, вы должны создать ярлык для файла jar, который включает параметр в целевой строке (щелкните правой кнопкой мыши на ярлыке и выберите Свойства) вы не можете добавить параметры сам значок файла jar таким образом.

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

существует бесплатное приложение для windows под названием «bat to exe», которое вы можете использовать для создания exe-файла из a .файл bat с соответствующей командной строкой в нем. вы также можете встроить файл jar в exe с помощью этого приложения и заставить его очистить его, когда он закончит работу, так что это может быть больше элегантное решение.

Ссылка на основную публикацию
Adblock
detector