Sysinternals to the rescue
What do you do when you see a Java windows application complain that there something wrong with its pdf reader? Well you look at its console output of course. Console output? … Yes console output.
java.io.IOException: CreateProcess: "C:/Program Files/Adobe/Acrobat 6.0/Reader
/AcroRd32.exe" /p /h "C:\Program Files\ECIClientV5\temp\eci-temp-1.pdf" error=3
java.io.IOException: CreateProcess: "C:/Program Files/Adobe/Acrobat 6.0/Reader/A
croRd32.exe" /p /h "C:\Program Files\ECIClientV5\temp\eci-temp-1.pdf" error=3
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Unknown Source)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
Acrobat 6.0 is no longer installed so http://www.sysinternals.com/Utilities/Junction.html came to the rescue. It provides something similar to linked files in Unix. There are a heap of great utilities over at sysinternals.com. Brilliant stuff.
$ junction "c:\Program Files\Adobe\Acrobat 6.0\Reader" "c:\Program Files\Adobe\Acrobat 7.0\Reader"
Junction v1.04 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2005 Mark Russinovich
Systems Internals - http://www.sysinternals.comCreated: c:\Program Files\Adobe\Acrobat 6.0\Reader
Targetted at: c:\Program Files\Adobe\Acrobat 7.0\Reader