java.awt.Desktop.open doesn’t work with PDF files?

Posted by Jason S on Stack Overflow See other posts from Stack Overflow or by Jason S
Published on 2009-10-06T18:04:47Z Indexed on 2011/01/01 2:54 UTC
Read the original article Hit count: 144

Filed under:
|

It looks like I cannot use Desktop.open() on PDF files regardless of location. Here's a small test program:

package com.example.bugs;

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class DesktopOpenBug {
    static public void main(String[] args)
    {
        try {
        	Desktop desktop = null;
            // Before more Desktop API is used, first check 
            // whether the API is supported by this particular 
            // virtual machine (VM) on this particular host.
            if (Desktop.isDesktopSupported()) {
                desktop = Desktop.getDesktop();
                for (String path : args)
                {
                	File file = new File(path);
                	System.out.println("Opening "+file);
                	desktop.open(file);
                }
            }    	    
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

If I run DesktopOpenBug with arguments c:\tmp\zz1.txt c:\tmp\zz.xml c:\tmp\ss.pdf (3 files I happen to have lying around) I get this result: (the .txt and .xml files open up fine)

Opening c:\tmp\zz1.txt
Opening c:\tmp\zz.xml
Opening c:\tmp\ss.pdf
java.io.IOException: Failed to open file:/c:/tmp/ss.pdf. Error message:
    The parameter is incorrect.

at sun.awt.windows.WDesktopPeer.ShellExecute(Unknown Source)
at sun.awt.windows.WDesktopPeer.open(Unknown Source)
at java.awt.Desktop.open(Unknown Source)
at com.example.bugs.DesktopOpenBug.main(DesktopOpenBug.java:21)

What the heck is going on? I'm running WinXP, I can type "c:\tmp\ss.pdf" at the command prompt and it opens up just fine.

edit: if this is an example of Sun Java bug #6764271 please help by voting for it. What a pain. >:(

© Stack Overflow or respective owner

Related posts about java

Related posts about desktop