2015-09-29 3 views
0

Я пытаюсь создать установщик для Java-приложения и хотел бы создать JAR, который извлекает себя. JAR будет построен с использованием сборки Maven и будет иметь основной класс, указанный в манифесте. Я хочу, чтобы основной класс извлекал остальную часть JAR в указанный каталог. JAR будет содержать другие JAR и некоторые документы. Я нашел другие вопросы, например, (How to copy file inside jar to outside the jar?), но они не рассматривают самораспаковывающийся JAR. Я хотел бы знать, как 1) получить местоположение и имя JAR, из которого выполняется основное, 2) скопировать содержимое JAR в указанный каталог.Как создать самораспаковывающийся JAR в Java

ОБНОВЛЕНИЕ: Я также хотел бы получить ответы на вопросы, касающиеся того, как создать установщик для приложения Maven Java (с использованием Eclipse) в целом.

+0

В чем проблема с сохранением JAR как таковой и вызовом '' 'java -jar MainClass '' для выполнения вашей программы? –

+0

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

+0

У вас есть доступ к вашим файлам в JAR, поэтому зачем их извлекать? –

ответ

0

Фактически этот ответ работает для меня: How to write a Java program which can extract a JAR file and store its data in specified directory (location)?, за исключением того, что я хочу пропустить копирование файла основного класса, а также пропустить создание папок на его пути, поэтому, если основной класс находится в пакете, который начинается с say, «com », а затем просто добавить

if(file.getName().startsWith("com")) 
    continue; 

ниже

java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName()); 
+0

Я до сих пор не понимаю интерес он может модифицировать файл конфигурации при их извлечении? –

+0

Да, пользователь должен иметь доступ к файлам конфигурации, документам и т. д., которые упакованы в банку. –

+0

Что произойдет, если вам нужно обновить банку? заменил? –

1

Если у вас есть конфигурации, которые вы хотите пользователю обновлять то не включать их в файл фляги. У вас есть несколько вариантов.

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

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

Если вам нужен пример работы IzPack, вы можете загрузить Squirrel, который является инструментом SQL, который использует IzPack для установки самостоятельно.

+0

Спасибо. U К сожалению, я не думаю, что лицензия IsPack разрешает коммерческое использование. –

+0

Хм ... https: //izpack.atlassian.net/wiki/display/IZPACK/IzPack+Home ... – khmarbaise

+0

Yup Я думаю, что вы правы. Я, должно быть, смотрел лицензию на веб-сайт. –

 Смежные вопросы

  • Нет связанных вопросов^_^