2013-07-29 2 views
0

У меня есть новый файл приложения jar. Он отлично работает в папке dist в папке проекта. Когда я пытаюсь переместить это в другое место, это не работает для меня.Как я могу сделать установщик с помощью Inno Setup?

Для решения этой проблемы я создал exe-файл, используя Launch4j в папке dist, и он также работает только в этой папке. Я не могу переместить его в другую папку.

Для создания установщика Я использую конструктор Inno Setup. Я создаю и устанавливаю приложение. Но это также не работает для меня. Как я могу сделать установщик с помощью Inno Setup?

+0

Ответ на вопрос * «Как я могу сделать установщик с помощью Inno Setup?» * Может быть * «Довольно просто!» * Или * «Взгляните на примеры из папки« Примеры »инсталляции InnoSetup.» *; -) На мой взгляд, вы должны сначала узнать, как развернуть приложение с помощью launch4j (особенно, как настраивать пути, или, если это возможно, распространять его и генерировать * .exe ad-hoc из установщика), а затем позаботиться о том, как развернуть его с помощью InnoSetup. Этот вопрос слишком широк ... – TLama

+0

Похоже, у вас есть ошибка, которая не связана с установкой. Вам необходимо изменить код приложения, чтобы он мог работать в разных каталогах. – jpmc26

ответ

1

Очень хороший способ - использовать JNLP (протокол запуска Java Network), все источники идут в JVM. Таким образом, вам не нужен какой-либо процесс установки.

О вашем вопросе«Как я могу сделать установщик с помощью Inno Setup?»

Смотрите ниже:

Существует много информации, как создать его.

Все примеры можно найти в documentation, что помогло мне разобраться.

Здесь я дам вам пример того, что я использовал, и она работала для меня:

[Setup] 
AppName=MyApplicationName-O 
AppVerName=MyApplicationName-O version 1.5.3.0 
AppPublisher=myApplicationSite.com 
AppPublisherURL=http://www.myApplicationSite.com 
AppSupportURL=http://www.myApplicationSite.com 
AppUpdatesURL=http://www.myApplicationSite.com 
DefaultDirName={pf}\MyApplicationName-O 
DefaultGroupName=MyApplicationName-O 
LicenseFile=COPYING 
;InfoBeforeFile=README 
OutputBaseFilename=setup 
Compression=lzma 
SolidCompression=yes 
ShowLanguageDialog=yes 

UninstallDisplayIcon=C:\workspacePrototype\App\sources\myApplicationName\pixmaps\icon.ico 
SetupIconFile=C:\workspacePrototype\App\sources\myApplicationName\pixmaps\icon.ico 


[Languages] 
Name: "english"; MessagesFile: "compiler:Default.isl" 



[Tasks] 
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked 

[Files] 
;;#include "myApplicationName-win32.filelist" 
; DLL used to check if the target program is running at install time 
Source: psvince.dll; flags: dontcopy 
; psvince is installed in {app} folder, so it will be loaded at 
; uninstall time to check if the target program is running 
Source: psvince.dll; DestDir: {app} 
Source: ./bin/avcodec-53.dll; Destdir: {app}; Flags: ignoreversion 
Source: ./share/themes/Outcrop/gtk-2.0/Tabs/button_prelight.png; Destdir: {app}\./share/themes/Outcrop/gtk-2.0/Tabs; Flags: ignoreversion 
Source: ./share/themes/Outcrop/gtk-2.0/tooltip.png; Destdir: {app}\./share/themes/Outcrop/gtk-2.0; Flags: ignoreversion 
Source: ./share/themes/Outcrop/gtk-2.0/trans.png; Destdir: {app}\./share/themes/Outcrop/gtk-2.0; Flags: ignoreversion 
Source: ./share/themes/Outcrop/gtk-2.0/trough.png; Destdir: {app}\./share/themes/Outcrop/gtk-2.0; Flags: ignoreversion 
;Source: ./share/themes/Raleigh/gtk-2.0/gtkrc; Destdir: {app}\./share/themes/Raleigh/gtk-2.0; Flags: ignoreversion 



[Icons] 
Name: "{group}\MyApplicationName-O"; Filename: "{app}\MyApplicationName-O.exe" ; WorkingDir: "{app}" 
Name: "{userdesktop}\MyApplicationName-O"; Filename: "{app}\MyApplicationName-O.exe"; WorkingDir: "{app}" ; Tasks: desktopicon 

[Registry] 
Root: HKCR; Subkey: "sip"; 
Root: HKCR; Subkey: "sip"; ValueData: "URL: SIP protocol" ; ValueType:string 
Root: HKCR; Subkey: "sip"; ValueName: "EditFlags"; ValueData: "02 00 00 00" ; ValueType:binary 
Root: HKCR; Subkey: "sip"; ValueName: "URL Protocol" ; ValueType:string 
Root: HKCR; Subkey: "sip\DefaultIcon"; ValueData: "{app}\MyApplicationName-O.exe"; ValueType:string ; Flags:uninsdeletekey 
Root: HKCR; Subkey: "sip\shell" 
Root: HKCR; Subkey: "sip\shell\open" 
Root: HKCR; Subkey: "sip\shell\open\command"; ValueType:string ; ValueData: "{app}\MyApplicationName-O.exe --workdir {app} --call %1"; Flags:uninsdeletekey 

[Run] 
Filename: "{app}\MyApplicationName-O.exe"; Description: "{cm:LaunchProgram,MyApplicationName-O}"; WorkingDir: "{app}" ; Flags: nowait postinstall skipifsilent 

; Comment out the following two lines if you don't want a Start Menu program group 
; to be created. (You'll need to run the uninstaller's EXE directly from its 
; folder (e.g. "C:\Program Files\Prompt to Close the Program") if you do.) 

[Icons] 
Name: "{group}\Uninstall this application"; Filename: "{uninstallexe}" 

;------------------------------------------------------------------------------- 

Вы можете запустить этот сценарий из Inno sSetup 5 или из командной строки:

ISCC.exe myApplication.iss 
Inno Setup 5 Command-Line Compiler 
Copyright (C) 1997-2012 Jordan Russell. All rights reserved. 
Portions Copyright (C) 2000-2012 Martijn Laan 
Inno Setup Preprocessor 
Copyright (C) 2001-2004 Alex Yackimoff. All rights reserved. 

Compiler engine version: Inno Setup 5.5.2 (a) 

[ISPP] Preprocessing. 
[ISPP] Preprocessed. 

Parsing [Setup] section, line 2 
Parsing [Setup] section, line 3 
Parsing [Setup] section, line 4 
Parsing [Setup] section, line 5 
Parsing [Setup] section, line 6 
Parsing [Setup] section, line 7 
Parsing [Setup] section, line 8 
Parsing [Setup] section, line 9 
Parsing [Setup] section, line 10 
+0

Ну, но у вас есть ['примеры поставляются с InnoSetup'] (https://github.com/jrsoftware/issrc/tree/master/Examples) ... – TLama

+0

Это рабочий скрипт, на самом деле его немного больше (с Pascal код, но он работает) –

+0

Примеры, которые у вас есть в папке «Примеры» вашей установки InnoSetup, также работают ... Я понятия не имею, как запуск4j делает исполняемый файл * .jar (как он внутренне находит время выполнения и все, что необходимо для его выполнения), но чтение второго абзаца вопроса заставляет меня почувствовать, что OP теперь привязан к определенной папке, на которую вы не можете положиться с серьезным установщиком. Отсюда мой комментарий к вопросу. Если бы я был OP, я бы сначала узнал, как настроить launch4j (или как его использовать для генерации * .exe ad-hoc), чтобы быть независимым на исходном компьютере. А затем сделайте установщик. – TLama