Создание установщика для настольного приложения Java

Я знаю, что этот вопрос задавался много раз, и все время есть ответ, в котором говорится об использовании исполняемого банку или создании .exe с использованием launch4j или подобного приложения.

Я могу походить на новичка, который я на самом деле.

Я пробовал несколько вещей с Java-проектом. Я успешно сделал исполняемый банку, а также файл .exe. Все благодаря вашим предыдущим ответам в SO:)

Но я хочу создать установщик для Windows. Например, нажав "Далее" в течение 2 - 3 раза (который показывает все условия и т.д.), Пользователь указывает местоположение (например, C:\Program Files\New Folder\My App), затем мою папку .exe, lib, img папка, другие важные папки вставляются в папку назначения вместе с файлом .exe, а затем ярлык создается на рабочем столе.

Любые указатели на то, как я могу это достичь?

Ответ 1

Я долгое время использовал InnoSetup. Он всегда работал очень хорошо. Он может делать все, что вам нужно (распаковать файлы, поместить ярлыки на рабочий стол, меню "Пуск" и т.д.) И генерировать установщики, к которым мы привыкли.

Ответ 2

Если вы хотите бесплатный и открытый исходный код, вы можете взглянуть на IzPack. Мы используем это на работе для поддержки его командной строки в нашем сборщике.

Вы также можете взглянуть на install4j, который является коммерческим продуктом, который мы отслеживали и выключали раньше (но когда дело доходит до траты денег, вы, как правило, хотите знать, что вы получаете то, что хотите;))

Ответ 3

Использовать Java Web Start.

Аналогично, нажав "Далее" в течение 2 - 3 раз (в котором указаны все условия и т.д.)

ExtensionInstallerService API JNLP предоставляет это. Вот демонграмма . службы установщика.

.. тогда пользователь задает местоположение (например, C:\Program Files\New Folder\My App),..

ExtensionInstallerService предоставляет метод getInstallPath(), который..

Возвращает каталог, в котором установщик рекомендуется установить расширение. Не требуется устанавливать установщик в этом каталоге, это всего лишь предлагаемый путь.

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

тогда моя папка .exe, lib, папка img, другие важные папки вставлены в папку назначения вместе с файлом .exe..

JWS автоматически устанавливает ресурсы, указанные в JNLP, когда и когда они необходимы. Кроме того, он обновляет ресурсы при изменении архивов на сервере.

а затем на рабочем столе создается ярлык.

JWS может предоставлять ярлыки на рабочем столе и пункты меню на поддерживаемых системах.

например.

Ответ 4

Я был в той же ситуации несколько месяцев назад. После многого. Я предлагаю NSIS. Существует хороший плагин для Eclipse EclipseNSIS с некоторыми шаблонами. Это помогает получить базовый установщик с помощью простых кликов. Если результирующего кода недостаточно, вы можете сделать остальную работу по кодированию, но большая часть кода создается EclipseNSIS.

Ответ 5

Вы также можете использовать Advanced Installer. Поскольку у вас уже есть EXE для запуска JAR, вам не нужно использовать поддержку Java Launcher из Advanced Installer, вы можете создать Простой проект, который доступен в бесплатной версии, поэтому вам не нужно приобретать лицензию.

Вам потребуется максимум 10 минут, чтобы установить его и создать пакет установки, так как вы увидите, что его очень легко изучить.

Ответ 6

"У меня та же проблема с Netbeans 10 и JDK 8.202

<project name="xxxxxxxx" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">

<target name="-post-jfx-deploy">
   <fx:deploy width="${javafx.run.width}" height="${javafx.run.height}" 
              nativeBundles="all"
              outdir="${basedir}/${dist.dir}" outfile="${application.title}">
      <fx:application name="${application.title}" 
                      mainClass="${javafx.main.class}"/>
      <fx:resources>
          <fx:fileset dir="${basedir}/${dist.dir}"
                      includes="*.jar"/>
      </fx:resources>
      <fx:info title="${application.title}" 
               vendor="xxxxxxx"/>
      <fx:preferences shortcut="true" install="true" menu="true"/>
    </fx:deploy>          
 </target>

'

Это помогло Wix создать инсталлятор, который автоматически создает ярлык на рабочем столе, но теперь он, похоже, не имеет никакого эффекта.

Есть ли способ добавить ярлык на рабочем столе в установщик пакета MSI, созданный Netbeans? Или лучше заставить Netbeans читать и правильно обрабатывать файл build.xml?