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/AcroRd32.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.com

Created: c:\Program Files\Adobe\Acrobat 6.0\Reader

Targetted at: c:\Program Files\Adobe\Acrobat 7.0\Reader