2008-12-24 25 views

Respuesta

40

Con JDK1.6, la clase java.awt.Desktop puede ser útil.

public static void open(File document) throws IOException { 
    Desktop dt = Desktop.getDesktop(); 
    dt.open(document); 
} 
+0

¿Este código también funciona en Linux? –

+0

Sí ... pero es una buena idea llamar 'Desktop.isDesktopSupported()' o 'Desktop.isSupported (action)' primero, consulte el Javadoc. – RealHowTo

2

Puede piratear algo junto con un archivo bat en Windows y su equivalente en Unix, pero eso no sería tan divertido.

Creo que su mejor opción sería la JDesktop Integration Components (JDIC). En particular, la clase Desktop tiene exactamente el método que está buscando.

EDITAR: Aparentemente, estoy atrasado porque esto se ha integrado en Java 1.6. En cualquier caso, si está trabajando en una versión anterior de Java, aún puede ser útil.

+0

Los enlaces provistos están rotos. Necesitas arreglar ambos. Gracias. –

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

Desde Java 1.6

Antes de que pudiera check this question

Resumen

Se vería algo como esto:

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. 
} 
+0

Me gustaría agregar "xdg-open" (http://portland.freedesktop.org/xdg-utils-1.0/xdg-open.html) para un comando Linux más integrado que no está disponible en todas partes. –

Cuestiones relacionadas