2010-10-20 5 views
2
try { 
    Runtime.getRuntime().exec("excel C:\\file.xls"); 
} catch (IOException ex) { 
    System.out.println(ex); 
} 

Ne fonctionne pas. Je dois mettre le chemin complet de excel.exe pour fonctionner. Comment puis-je le rendre générique (pour tous les dossiers/versions Excel)? Lorsque j'exécute la même ligne à partir du système d'exploitation avec Windows Run (Démarrer -> Exécuter) cela fonctionne. Existe-t-il un code en Java pour simuler la commande Run de Windows?Java - Exécuter Excel à l'aide de runtime.getRuntime(). Exec

Répondre

10

Pourquoi ne pas essayer avec la classe Desktop (api doc here) introduit dans JDK6 qui a la méthode

public void open(File file) throws IOException 

qui est documenté que ce que vous vouloir faire:

Lance l'application associée pour ouvrir le fichier. Si le fichier spécifié est un répertoire, le gestionnaire de fichiers de la plate-forme actuelle est lancé pour l'ouvrir.

Bien sûr, cela suppose que l'extension .xls est mappée par OS à Excel. Ensuite, vous pouvez aller avec

Desktop.getDesktop().open(new File("c:\\file.xls")); 
+0

Cela fonctionne mais j'ai des problèmes avec les espaces dans le chemin. J'ai essayé l'URI mais cela n'a pas fonctionné. –

+0

peut-être vous devriez essayer d'intégrer le nom de fichier entre guillemets ".. bien sûr vous devriez les échapper:' new File ("\" c: \\ filename avec spaces.xls \ "") ' – Jack

0

Appelez la commande Windows "start.exe" au lieu d'Excel directement. Start.exe apparaît pour rechercher des chemins, etc. Cependant, il peut toujours ne pas le trouver s'il n'est pas dans le chemin.

+0

ne fonctionne pas. il ne peut pas le trouver –

1

J'utilise Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *filename* cela fonctionne pour moi sur les plateformes Windows

Questions connexes