Question

Chaque fois que j'utilise Runtime.exec ("cmd / c start ....") , j'ouvre une fenêtre cmd. Je souhaite créer une application plus transparente en fermant chaque fenêtre cmd précédente. Comment puis-je faire cela?

Si quelqu'un connaît un meilleur moyen d'exécuter une série de commandes dans la même fenêtre cmd plutôt que d'en ouvrir de nouvelles à chaque fois que j'exécute une commande, merci de me le faire savoir.

Était-ce utile?

La solution

Vous ne pouvez pas contrôler les fenêtres ouvertes à partir de Java. Mais je vous propose deux solutions:

Premier :

Runtime.exec("cmd /c start /MIN ...")

Le paramètre / MIN empêchera l'affichage des fenêtres.

Deuxième : placez toutes les applications que vous devez appeler dans le même fichier de traitement par lots et appelez-le une fois. : -)

Autres conseils

Ne pas utiliser start, cela ouvre une autre fenêtre

Remplacer:

Runtime.exec("cmd /c start....")

avec:

Runtime.exec("cmd /c ....")

Pourquoi avez-vous besoin des fenêtres de commande?

J'exécutais la commande directement en Java, je capturais la sortie et la affichais dans une fenêtre locale (le cas échéant).

Assurez-vous simplement de consommer toute la sortie du programme, sinon cela pourrait s’arrêter. Pensez également à fermer les flux stdout, stderr et stdin, sinon certains descripteurs de fichiers risquent de fuir (ce qui est vrai sur certains JDK sur certains systèmes d'exploitation Unix ... Windows, qui sait.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top