Bonjour,
j'essaye de lancer un fichier lorsque l'utilisateur clique deux fois dessus dans un champ de JTable, au depart j ai utilise la classe Process avec son runtime.
J'ai bien evidemment ete confronte au probleme connu des espaces:
//Process child = Runtime.getRuntime().exec(new String[]{"cmd", "/c", "start", file.toURI().toString()});
Si j'utilise le URI, les fichiers se lancent, espaces ou pas espaces a l exception du Windows Picture & Fax Viewer. Si j'essaye de lancer un jpg, l'application s'ouvre et se ferme instantanement.
si j'utilise /K, la ca resoud le probleme mais a chaque ouverture de fichier, windows a un process cmd.exe de plus... ce n'est pas l'ideal non plus.
Enfin, si j'utilise betement:
Process child2 = Runtime.getRuntime().exec(new String[]{"cmd", "/c", "start", file.getAbsolutePath()});
La, les jpg s'ouvrent parfaitement mais les fichiers avec des espaces me donnent une belle ouverture du cmd et rien d'autre.
Apres diversers lecture, je suis tombe sur la classe Desktop, j'essaye une bete application et rien ne se passe, meme pas d'exception:
1 2 3 4 5
| if(Desktop.isDesktopSupported()) {
Desktop test = Desktop.getDesktop();
System.out.println(test.isSupported(Desktop.Action.OPEN));
test.open(file));
} |
Si quelqu'un peut m'eclaircir sur ce dernier point ou a une solution avec la le runtime, je lui en serai infiniment reconnaissant 
Merci et bonne journee !
Antoine.
Partager