Domanda

    

Questa domanda ha già una risposta qui:

         

Come si apre un file da un'applicazione Java quando non si sa quale applicazione il file è associato. Inoltre, perché sto utilizzando Java, io preferirei una soluzione indipendente dalla piattaforma.

È stato utile?

Soluzione

Con JDK1.6, il java.awt.Desktop classe può essere utile.

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

Altri suggerimenti

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

Dal momento che Java 1.6

In precedenza che si potrebbe controllare questa domanda

Sommario

Sarebbe simile a questa:

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

Si potrebbe incidere qualcosa insieme con un file bat su Windows e equivalente su Unix, ma che non sarebbe così divertente.

Credo che la soluzione migliore sarebbe la JDesktop componenti di integrazione (JDIC) . In particolare, il Desktop classe è esattamente il metodo che si sta cercando.

EDIT: A quanto pare, io sono dietro i tempi, perché questo è stato integrato in Java 1.6. In ogni caso, se si lavora in una precedente Java, può ancora essere utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top