Эндрю всегда любит продвигать Java Web Start технологии с самого начала :) Это хорошая технология.Но вам также нужно сначала изучить технические детали, прежде чем вы сможете начать с ним возиться.
В противном случае вы остаетесь с старой моделью дистрибутива EXE следующим образом ...
Iв любом случае я не знаком с Izpack .Но есть аналогичные отдельные инструменты для достижения объединенного результата в отношении того, что может izPack .Мои любимые инструменты для создания и установки EXE-файлов: Launch4J + InnoSetup + Задача Ant , запущенная из Eclipse IDE .
Launch4J - средство запуска приложений Java. InnoSetup - создатель установки Задача Ant помогает разработчикам на этапах сборки и интеграции.
Как использовать Launch4J + InnoSetup + задача сборки Ant + 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"
Экспериментируйте и наслаждайтесь!