Как сделать файл.exe для установщика izpack.jar file

Я делаю установщик с izpack. Это в.jar файле. Я хочу сделать это в файле.exe, чтобы распространять его. Как я могу сделать это простым способом?

3 ответа

Эндрю всегда любит продвигать технологию Java Web Start с самого начала:) Это хорошая технология. Но вам также необходимо сначала изучить технические детали, прежде чем начать с ними возиться.

В противном случае у вас останется старая модель дистрибутива EXE следующим образом...

Я все равно не знаком с Изпаком. Но есть аналогичные отдельные инструменты для достижения комбинированного результата в отношении того, что может сделать izPack. Моими любимыми инструментами создания и установки EXE- файлов являются Launch4J + InnoSetup + Ant задача, выполняемая из Eclipse IDE.

Launch4J - это программа запуска Java-приложений. InnoSetup - это задача Ant для создателя установки, которая помогает разработчикам на этапах сборки и интеграции.

Как использовать Launch4J + InnoSetup + Ant build build + Eclipse IDE: http://www.eteks.com/tips/tipCreationExe.html (на французском языке - использовать Google переводчик)

Когда вы думаете о распространении настольного EXE-файла Windows для приложения Java, вам также нужно подумать о целевой среде. Это хорошо, когда вы ориентируетесь на Windows XP или более раннюю версию. Но это станет большим разочарованием, если вы захотите заставить его работать должным образом в Windows Vista и Windows 7.

Лучше не хранить конфигурации приложений, временные файлы и т. Д., Которые требуют сохранения в %ProgramFiles% под Windows Vista/Windows 7, поскольку теперь она становится папкой только для чтения. Используйте папку профиля пользователя для этой цели.

Конечно, вы можете обойти это, запустив приложение с помощью "Запуск от имени администратора", но это включает в себя следующую настройку:

В Windows Vista и Windows 7 введена строгая политика доступа пользователей с помощью функции подсказки контроля доступа пользователей (UAC). Установка программного обеспечения должна выполняться с использованием учетной записи пользователя в группе "Администраторы". Все папки в системе Windows по умолчанию Program Files установлены только для чтения, и это может вызвать проблемы с учетными записями пользователей без прав администратора при попытке сохранить что-либо в нем. Для запуска приложения Java с использованием учетной записи пользователя без прав администратора свойства приложения должны быть включены Run as administrator, Ярлык должен быть создан на рабочем столе и должен быть включен Run as administrator также.

Как решить следующие проблемы:

(1) Проблема с AppUserModelID Для поддержки Java в Windows Vista/Windows 7 необходимо следующее решение: Launch4j, NSIS и дублированные закрепленные значки панели задач Windows 7.

(2) Проблема с Run as Administrator для приложения Java требуется следующее решение: Запрос прав администратора для приложения Java в Windows Vista

Кроме тех, вы также должны проверить %ProgramFiles% при работе под 64-битной версией Windows. Путь не одинаковый между 32-битной Windows и 64-битной Windows. Под 64-битной Windows все 32-битные приложения перейдут в %ProgramFiles(x86)%,

Поэтому будьте осторожны при использовании жестко запрограммированного пути к файлу к папке и подпапкам приложения Java, которые установлены в %ProgramFiles%, Лучше настроить Windows environment variable который может быть сгенерирован InnoSetup в следующем фрагменте файла ISS. Использовать Java System.getenv("MYAPP_HOME") чтобы получить переменную:

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; Flags: uninsdeletevalue; ValueType: string; ValueName: "MYAPP_HOME"; ValueData: "{app}\"

[Tasks]
Name: modifypath; Description:"Add application directory to your environmental path"; Flags: unchecked

[Run]
Filename: "{app}\MyApp.EXE"; Parameters: """{app}""\"; WorkingDir: "{app}\"; Description: "Run MyApp"; Flags: postinstall nowait skipifsilent

[Code]

const
    ModPathName = 'modifypath';
    ModPathType = 'system';

function ModPathDir(): TArrayOfString;
begin
    setArrayLength(Result, 1)
    Result[0] := ExpandConstant('{app}');
end;
#include "modpath.iss"

Экспериментируйте и наслаждайтесь!

Если приложение. имеет графический интерфейс, и вы можете распространять его с веб-сайта, Java Web Start предлагает лучшее решение. JWS работает для всех платформ, поддерживающих Java, и поддерживается Oracle.

(Я слышал, что.Net хорошо работает для решений "только для Windows".)

winrun4j очень прост в использовании, моя единственная проблема в том, что если вы не распространяете встроенную JVM, вам, вероятно, придется обеспечить как 64-битную, так и 32-битную загрузку.

Другие вопросы по тегам