izpack: Create shortcut on windows 7

2019-01-27 00:04发布

I use izpack to create an installer for my application. So far I was able to create the installer and on my linux machine everything is fine.
The problem is that on the windows machines I tested it on (Win7 6bits) the installer did not show the shortcut panel.
I did read the documentation troubleshooting section and took care that I have the natives in my installer.
Same goes for the shortcut xml file, they are in the installer in the resources path. I also read that most likely it is a case sensitive typo or something similar simple but could not figure it out. Here is my shortcut xml:

<shortcuts>
<programGroup defaultName="SteamNet" location="applications"/>
<shortcut
    name = "One Click Wonder"
    target = "$INSTALL_PATH\oneclickwonder.bat"
    commandLine = ""
    workingDirectory= "$INSTALL_PATH"
    description="Minimal Desktop Timer"
    iconFile="$INSTALL_PATH\images\windows_icon.ico"
    iconIndex="0"
    initialState="noShow"
    programGroup="yes"
    desktop="yes"
    applications="yes"
    startMenu="yes"
    startup="yes"/>
</shortcuts>

And this is my install.xml file:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<installation version="1.0">
  <info>
    <appname>Test</appname>
    <appversion>1</appversion>
  </info>
  <guiprefs width="600" height="480" resizable="no">
  </guiprefs>
  <locale>
    <langpack iso3="eng"/>
  </locale>
  <panels>
    <panel classname="ShortcutPanel"/>
  </panels>
  <packs>
    <pack name="Test" required="yes">
      <description>Description</description>
    </pack>
  </packs>
  <resources>
    <res src="shortcutSpec.xml" id="shortcutSpec.xml"/>
  </resources>
  <natives>
    <native type="izpack" name="ShellLink_x64.dll"/>
</natives>
</installation>

But i can't display the shortcut panel in my installer ... !

2条回答
时光不老,我们不散
2楼-- · 2019-01-27 00:15

I compared this to a working installer file here which in contrast contains the following <natives> setting:

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

When using a 32-Bit Java Runtime the 32-Bit ShellLink.dll will be used which is missing in your setup.

查看更多
孤傲高冷的网名
3楼-- · 2019-01-27 00:16

Unfortunately there are a few known issues with ShortcutPanel. After extensive trial-and-error testing I have found that the following requirements have to be satisfied in order for it to display correctly:

  • The <lateShortcutInstall/> tag in the shorctuts XML file must only be present if you want to show ShortcutPanel before InstallPanel. If your ShortcutPanel comes after the installation step, your shurtcut panel will not be shown!

  • Your <native> tags must be enclosed within a <natives> tag,

  • Add the <skipIfNotSupported /> tag to the beginning of the <shortcuts> element,

  • Double check your shortcuts XML file as it may have incorrect attribute names and/or missing quotes. Many users have reported such issues and it may be that there is an incorrect website that a lot of people copy-paste from. The specification for shortcut attributes can be found here.

  • Check whether the native DLLs are packaged into the installer JAR. For the ShellLink DLLs unpack the JAR and look inside: com/izforge/izpack/bin/native (and NOT com/izforge/izpack/bin/native/izpack/)1,

  • And finally, this is a bit trivial, but check whether your shortcuts XML file is where you think it is and that it has the correct name.


Footnotes:

  1. I am using IzPack version 5.0.6.
查看更多
登录 后发表回答