Как сделать файл.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-битную загрузку.