Я создаю файл .deb для исполняемого файла jar, который я создал для себя. Я собрал .deb и установил мою программу в /usr/bin .

Поскольку у меня есть фляга, у меня теперь был исполняемый файл /usr/bin/mylovelyprogram.jar . Я заметил, что никакие другие файлы в каталоге не имеют расширения.

Теперь я знаю, что иметь расширение или нет не имеет значения, но это беспокоило меня, так как моя программа выделялась. Я задавался вопросом, было ли обычно переименовывать упакованные исполняемые jars , чтобы у них больше не было расширения? Или, если был какой-то другой стандарт, например, поместить банку в другое место и использовать символическую ссылку? Я бы хотел соответствовать существующим стандартам там, где это возможно, главным образом, чтобы у меня не было вредных привычек, если я когда-нибудь решу распространять свою программу.

2 ответа2

1

Другие файлы в /usr/bin безусловно, не являются Java-приложениями.

Ваш jar не является исполняемым файлом сам по себе, его нужно открыть и выполнить исполняемым файлом java . Двойной щелчок по нему сделает магию (выполнения java -jar your.jar) в фоновом режиме.

ИМХО, ваша банка не принадлежит /usr/bin . /opt/yourapp будет мудрее. Смотрите этот вопрос здесь .

1

"Стандартное" расположение Unix для локальных пакетов (вещи, относящиеся только к одному компьютеру, а не для всей сетевой установки) - это /usr /local

Многие дистрибутивы Linux предпочитают нарушать этот стандарт и просто сбрасывать все в /usr или (не дай бог) /opt! (Разве вы не ненавидите это, когда какое-то приложение решает заполнить ваш корневой раздел, потому что оно выгружает себя в /opt, которого раньше не было? не упоминая имена, libreoffice ...)

Ваш jar-файл - это, по сути, библиотека, и он должен находиться где-то вроде /usr /local /lib /myapp /

У вас должен быть небольшой скрипт в /usr /local /bin, который вызывает ваш jar-файл с использованием виртуальной машины java.

#!/bin/sh
java -jar /usr/local/lib/myapp/myjar.jar $*

И, конечно, вы должны быть уверены, что /usr /local /bin находится в вашем $ PATH

Такое расположение предотвращает смешивание вашего программного обеспечения с программным обеспечением операционной системы, а также удерживает его в разделе, который должен иметь достаточно места. Он также хорошо вписывается в системы, отличные от Linux, на которых, как и на Java, вы ожидаете, что он будет работать, да? Это ведь весь смысл Java, не так ли? Кросс-платформенный?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .