erik@winepos.com
26th July 2013 17:33 UTC
javaws and desktop shortcut creation
A little background first. A colleague of mine used NSIS a few years ago to create an installer for our Java application. It has been working but now we want to move to Java 7 which requires minor tweaking to the nsi script.
I took the existing script he wrote and changed the name of the java file that is running and the associated arguments for running, namely I changed this:
ExecWait "$TEMP\j2re\jre-6u13-windows-i586-p-iftw.exe /passive ADDLOCAL=jrecore STATIC=1"
to this:
ExecWait "$TEMP\j2re\jre-7u25-windows-i586.exe /s"
At the very end of the script it runs a single javaws line that should copy shortcuts to the desktop (where $4 is the jnlp file location):
ExecWait "javaws -wait -shortcut -import -system $4"
The previous installer we created with NSIS would prompt the user at the end to create shortcuts but the new installer is just failing.
At this point I have three things to look at, namely the javaws command, the jnlp file we are using and the nsi script.
Can anyone help me narrow down my problem?
Anders
26th July 2013 20:01 UTC
I would say all those exec calls are wrong, please use:
ExecWait '"c:\full\path\to\app.exe" /param1 "par am2" /param3'
erik@winepos.com
26th July 2013 21:41 UTC
I did manage to get the shortcuts to install by commented this out but I am noticing some inconsistencies in the Java cache viewer:
SetShellVarContext all
;these files are required for system-wide install of java web start applications
CreateDirectory "$WINDIR\Sun\Java\Deployment"
SetOutPath "$WINDIR\Sun\Java\Deployment"
File deployment.config
File enterprise.properties
Thanks Anders, I will try that out as well
erik@winepos.com
30th July 2013 21:45 UTC
So it turns out my problem was that the previous script was not scrubbing the javaws cache files well enough so I added these lines:
;for windows 7
RMDir /r /REBOOTOK "$PROFILE\AppData\LocalLow\Sun\Java\Deployment\cache"
RMDir /r /REBOOTOK "$PROFILE\AppData\LocalLow\Sun\Java\Deployment\SystemCache"
;for windows xp
RMDir /r /REBOOTOK "$LOCALAPPDATA\Sun\Java\Deployment\cache"
RMDir /r /REBOOTOK "$LOCALAPPDATA\Sun\Java\Deployment\SystemCache"