Я создаю .deb файл для исполняемой банки, которую я создал для меня. Я создал .deb и установил мою программу на /usr/bin
.
Поскольку у меня есть банка, мне теперь назвали исполняемый файл /usr/bin/mylovelyprogram.jar
. Я заметил, что никакие другие файлы в каталоге не имели расширение.
Теперь, я знаю, что наличие расширения или не не имеет значения, но оно действительно беспокоило меня, так как моя программа выделилась. Я задался вопросом, было ли обычно переименовать упакованный исполняемый файл jars
таким образом, что у них больше нет расширения? Или, если был некоторый другой стандарт, например, помещение банки где-то в другом месте и использование символьной ссылки? Я хотел бы соответствовать существующим стандартам, если это возможно, главным образом таким образом, я не попадаю в дурные привычки, если я когда-нибудь решаю распределить свою программу.
"Стандартное" местоположение Unix для локальных пакетов (вещи, которые характерны для одного компьютера и не целого монтажа сети) является/usr/local
Много дистрибутивов Linux принимают решение повредить этот стандарт и просто вывести все в/usr, или (не дай бог)/, чтобы выбрать! (Вы только ненавидите его, когда некоторое приложение решает заполнить Ваш корневой раздел, потому что это вывело себя в/, выбирают, который не существовал перед рукой? не упоминая имен, libreoffice...)
Ваш файл банки является эффективно библиотекой и должен быть в где-нибудь как/usr/local/lib/myapp/
У Вас должен быть маленький сценарий в/usr/local/bin, который называет Ваш файл банки с помощью виртуальной машины Java.
#!/bin/sh
java -jar /usr/local/lib/myapp/myjar.jar $*
И конечно необходимо быть уверены, что/usr/local/bin находится в $PATH
Это расположение мешает Вашему программному обеспечению то, чтобы быть смешанным с программным обеспечением операционной системы и также сохраняет его на разделе, который должен иметь много комнаты. Это также согласуется приятно с системами не-Linux также, на которых, поскольку это - Java, Вы полностью ожидаете, что это будет работать, да? Это после всего смысла Java, не так ли? Межплатформенный?
Другие файлы в /usr/bin
несомненно не JAVA-приложения.
Ваша банка не является исполняемым файлом самостоятельно, она должна быть открыта и выполнена java
исполняемый файл. Двойной щелчок по нему сделает волшебство (выполнения java -jar your.jar
) в фоновом режиме.
По моему скромному мнению, Ваша банка не принадлежит /usr/bin
. /opt/yourapp
было бы более мудрым. Посмотрите этот вопрос здесь.