Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open a file with an external application on Java [duplicate]

How do you open a file from a java application when you do not know which application the file is associated with. Also, because I'm using Java, I'd prefer a platform independent solution.

like image 925
Mercurious Avatar asked Dec 24 '08 04:12

Mercurious


3 Answers

With JDK1.6, the java.awt.Desktop class can be useful.

public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}
like image 187
RealHowTo Avatar answered Nov 02 '22 23:11

RealHowTo


File file
Desktop.getDesktop().open( file );

Since Java 1.6

Previous to that you could check this question

Summary

It would look something like this:

Runtime.getRuntime().exec( getCommand( file ) );

public String getCommand( String file ){ 
    // Depending on the platform could be
    //String.format("gnome-open %s", fileName)
    //String.format("open %s", fileName)
    //String.format("cmd /c start %s", fileName)
    // etc. 
}
like image 45
OscarRyz Avatar answered Nov 03 '22 01:11

OscarRyz


You could hack something together with a bat file on Windows and equivalent on Unix, but that wouldn't be that fun.

I think your best bet would be the JDesktop Integration Components (JDIC). In particular, the Desktop class has exactly the method you're looking for.

EDIT: Apparently, I'm behind the times because this has been integrated into Java 1.6. In any case, if you're working in an earlier Java, it may still be useful.

like image 23
Dave Ray Avatar answered Nov 02 '22 23:11

Dave Ray