2012-07-12 15 views
8

Sto provando ad usare IzPack per installare il mio programma e vorrei aggiungere i collegamenti del desktop al programma di installazione, ecco la documentazione/le istruzioni dal sito web IzPack.IzPack - Collegamento desktop su Windows - Non funzionante

http://izpack.org/documentation/desktop-shortcuts.html

Tuttavia, i file XML di seguito, quando compilato, creano solo uno schermo vuoto nel programma di installazione che si blocca quando si tenta di fare clic su "Avanti" per andare oltre. Ecco come appare lo schermo durante l'esecuzione su Windows 7 - 64 bit.

enter image description here

Ecco il mio install.xml e file shortcutSpec.xml.

install.xml

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> 

<installation version="1.0"> 

<!-- The info section. --> 

<info> 
    <appname>Application Name</appname> 
    <appversion>1.0</appversion> 
    <url>http://www.example.com/</url> 
    <javaversion>1.6</javaversion> 
    <run-privileged condition="izpack.macinstall|izpack.windowsinstall.vista|izpack.windowsinstall.7"/> 
</info> 

<!-- The gui preferences indication. --> 

<guiprefs width="640" height="480" resizable="yes"/> 

<!-- The locale section. --> 

<locale> 
    <langpack iso3="eng"/> 
</locale> 

<!-- The resources section. --> 

<resources> 
    <res id="LicencePanel.licence" src="licence.txt"/> 
    <res id="InfoPanel.info" src="readme.txt"/> 
    <res id="shortcutSpec.xml" src="shortcutSpec.xml"/> 
</resources> 
<native type="izpack" name="ShellLink.dll"/> 

<!-- The panels section. --> 

<panels> 
    <panel classname="HelloPanel"/> 
    <panel classname="InfoPanel"/> 
    <panel classname="LicencePanel"/> 
    <panel classname="TargetPanel"/> 
    <panel classname="ShortcutPanel"/> 
    <panel classname="PacksPanel"/> 
    <panel classname="InstallPanel"/> 
    <panel classname="SimpleFinishPanel"/> 
</panels> 

<native type="izpack" name="ShellLink.dll"/> 

<!-- The packs section. --> 

<packs> 
    <pack name="Program and Dependencies" required="yes"> 
     <description>Program, libraries and other dependencies</description> 
     <file src="ExecutableJar.jar" targetdir="$INSTALL_PATH"/> 
     <file src="lib" targetdir="$INSTALL_PATH"/> 
     <file src="save" targetdir="$INSTALL_PATH"/> 
     <file src="HelpContents.chm" targetdir="$INSTALL_PATH"/> 
     <file src="icon.png" targetdir="$INSTALL_PATH"/> 
     <file src="application.ini" targetdir="$INSTALL_PATH"/>  
     <file src="readme.txt" targetdir="$INSTALL_PATH"/> 
     <file src="licence.txt" targetdir="$INSTALL_PATH"/> 
     <file src="autorun-win.bat" targetdir="$INSTALL_PATH"/> 
    </pack> 
    <pack name="Samples" required="no"> 
     <description>Word Document Samples</description> 
     <file src="samples" targetdir="$INSTALL_PATH"/> 
    </pack> 
    <pack name="Templates" required="no"> 
     <description>Word Document Templates</description> 
     <file src="templates" targetdir="$INSTALL_PATH"/> 
    </pack> 
</packs> 

E lo shortcutSpec.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 

<shortcuts> 
    <skipIfNotSupported/> 
    <programGroup defaultName="AppGroupName" location="applications"/> 
    <shortcut 
     name="Application - Startup" 
     target="$INSTALL_PATH\autorun-win.bat" 
     workingDirectory="$INSTALL_PATH" 
     programGroup="no" 
     desktop="yes" 
     applications="yes" 
     startMenu="yes" 
     startup="yes"/> 
</shortcuts> 

Note aggiuntive:

  1. Sto ottenendo zero errori di compilazione.

  2. Senza il collegamento aggiunto, l'installazione funziona correttamente.

  3. Il mio programma è un jar eseguibile, per eseguirlo automaticamente ho creato uno script batch in Windows denominato autorun-win.bat, che è ciò a cui il collegamento sul desktop deve essere collegato.

EDIT:

Ho provato questo importazione così come il sapore a 32 bit. Nessuno dei due ha avuto alcun effetto sui risultati di cui sopra. Eventuali ulteriori contributi sarebbero molto apprezzati.

<native type="izpack" name="ShellLink_x64.dll" /> 
+0

Date un'occhiata a questo: http://stackoverflow.com/questions/33419830/izpack-create-shortcut-on-windows-7/35627201#35627201 – Pickle

risposta

7

La creazione del collegamento dipende dal lib nativo di supporto ShellLink.dll che supporta solo sistemi a 32 bit. Per Windows a 64 bit è necessario aggiungere la seguente voce anche per supportare entrambi i sapori:

<native type="izpack" name="ShellLink_x64.dll" /> 
+1

Purtroppo ho provato questo e non ha avuto alcun effetto sui risultati. Apprezzo comunque la risposta. – CODe

+1

Puoi per favore indicare la versione di izpack che stai utilizzando? – Torsten

+0

Versione stabile attuale: IzPack 4.3.5. Mi scuso per la risposta in ritardo, ho rinunciato dopo aver avuto altri problemi. Sembra che IzPack sia piuttosto buggy e imprevedibile nel complesso, non eccezionale per le applicazioni commerciali. Ottieni l'assegno verde per fornire l'unica risposta utile, sperando che questo aiuti almeno qualcuno in futuro. – CODe

2

Non ho mai usato questo strumento, quindi questo potrebbe essere un rosso totale. Nel file scorciatoie non è presente un'istruzione CreateForPack. Potrebbe essere qualcosa a che fare con la colpa?

+1

Grazie per il feedback, ma questo non è il problema, purtroppo. – CODe

0

ho sperimentato un caso in cui una configurazione IzPack lavoro con la creazione di collegamento improvvisamente smesso di mettere l'icona. Si è scoperto che il file di icona creato sotto Linux con commav convertito era difettoso, ho ripristinato la vecchia icona

2

Anche se questo problema è vecchio, ho riscontrato questo problema oggi su IzPack 4.3.5. Due osservazioni sono fornite qui.

Innanzitutto, la documentazione su http://docs.codehaus.org/pages/viewpage.action?pageId=230398023 mostra le istruzioni native inserite all'interno di un tag "natives". Questo sembra essere errato per la versione v4.

In secondo luogo, la DLL ShellLink_x64 deve essere visibile al compilatore. Ho dovuto aggiungere '-h $ {IZPACK_HOME}' alla riga di esecuzione del compilatore per farlo accadere. Purtroppo non sembra esserci alcun avvertimento se questo file non può essere trovato, ma il programma di installazione si blocca come descritto.

La risoluzione di questi problemi ha risolto questo problema per me.