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:
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.Code://Process child = Runtime.getRuntime().exec(new String[]{"cmd", "/c", "start", file.toURI().toString()});
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:
La, les jpg s'ouvrent parfaitement mais les fichiers avec des espaces me donnent une belle ouverture du cmd et rien d'autre.Code:Process child2 = Runtime.getRuntime().exec(new String[]{"cmd", "/c", "start", file.getAbsolutePath()});
Apres diversers lecture, je suis tombe sur la classe Desktop, j'essaye une bete application et rien ne se passe, meme pas d'exception:
Si quelqu'un peut m'eclaircir sur ce dernier point ou a une solution avec la le runtime, je lui en serai infiniment reconnaissant ;)Code:
1
2
3
4
5 if(Desktop.isDesktopSupported()) { Desktop test = Desktop.getDesktop(); System.out.println(test.isSupported(Desktop.Action.OPEN)); test.open(file)); }
Merci et bonne journee !
Antoine.