Le package Desktop dispose d'une fonction comparable à ShellExecute sous Windows. A partir d'un nom de fichier, la fonction lance automatiquement l'éditeur par défaut pour ce type de fichier.
Dans l'exemple ci-dessous, NotePad est ouvert pour editer le fichier c:\log.txt et l'application Paint pour retoucher l'image c:\ajax.gif.
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Ouvrir un fichier dans l'éditeur par défaut
*/
public class OpenDefaultEditor {
/**
* Lancer l'executable et ouvrir le fichier
* @param filename
*/
public static void lanch(String filename) {
File file = new File(filename);
if (!file.exists() && file.length() < 0) {
System.out.println("Specified file does not exist!");
System.exit(0);
}
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
try {
desktop.edit(file);
} catch (IOException ex) {
Logger.getLogger(OpenDefaultEditor.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Exemple pour une image au format gif et un texte
* @param args
*/
public static void main(String[] args) {
OpenDefaultEditor.lanch("c://ajax.gif");
OpenDefaultEditor.lanch("c://log.txt");
}
}