L'exécution de la commande manuellement avec java (à l'aide de cmd.exe)
Donc la suivante s'ouvre dans une nouvelle fenêtre de navigateur lorsque je l'ai mis dans cmd manuellement:
cd C:/Program Files (x86)/Google/Chrome/Application&chrome.exe
Cependant, quand j'ai essayé de le faire via un programme java (voir ci-dessous), l'invite de commande s'ouvre et va vers le bon répertoire, mais pas de nouvelle fenêtre s'ouvre. Toutes les idées de ce que je dois changer?
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start cd C:/Program Files (x86)/Google/Chrome/Application&chrome.exe");
- avez-vous essayé de rt.exec("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe");
- J'ai essayé, et la machine semble jeter une erreur à C:/Program. Il n'est pas passé.
- il semble d'Exécution.exec(String) tokenizes la chaîne, mais de l'Exécution.exec(String[]) non, ma dernière conjecture serait rt.exec(new String[] {"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"});
Vous devez vous connecter pour publier un commentaire.
rt.exec("cmd.exe /c start cd \"C:/Program Files (x86)/Google/Chrome/Application&chrome.exe\"");
Pas encore testé mais c'est du travail, je viens de mettre le chemin complet entre guillemets doubles, de sorte qu'en raison de l'espace n'est pas considéré comme l'argument suivant.
Si cela ne fonctionne pas, je vous propose d'essayer Apache Commons Exec bibliothèque, parce que j'ai toujours l'utiliser.
Voici un exemple de code d'une de mes applications :
En utilisant quelque chose comme ci-dessus le chemin d'accès complet chrome.exe devrait être ajouté comme un argument nouveau, puis la bibliothèque prendra soin de s'échapper.
Essayer
ProcessBuilder
au lieu deRuntime
:Voir aussi:
ProcessBuilder
principalement parce que vous pouvez définir des variables d'environnement à l'aide depb.environment().put(key,value)
. Aussi il est plus simple d'exécuter une commande avec de nombreux paramètres séparément au lieu de les écrire dans une chaîne de grande taille.