Domanda

Ogni volta che utilizzo Runtime.exec (" cmd / c start .... ") apro una finestra cmd. Vorrei creare un'applicazione più semplice chiudendo ogni finestra cmd precedente. Come posso farlo?

Se qualcuno conosce un modo migliore per eseguire una serie di comandi nella stessa finestra cmd anziché aprirne di nuovi ogni volta che eseguo un comando, per favore fatemelo sapere.

È stato utile?

Soluzione

Non è possibile controllare le finestre aperte da Java. Ma suggerisco due soluzioni per te:

prima :

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

Il parametro / MIN impedisce la visualizzazione di Windows.

Secondo : inserisci tutte le applicazioni che devi chiamare nello stesso file batch e chiamalo una volta. : -)

Altri suggerimenti

Non usare start, questo apre un'altra finestra

Sostituisci:

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

con:

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

Perché hai bisogno di cmd windows?

Avrei eseguito il comando direttamente in Java e catturato l'output e visualizzato in una finestra locale (se necessario).

Assicurati di consumare tutto l'output dal programma o potrebbe bloccarsi. Ricorda anche di chiudere i flussi stdout, stderr e stdin o alcuni handle di file potrebbero perdere (beh, questo è vero su alcuni JDK su alcuni sistemi operativi Unix ... Windows, chi lo sa).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top