2013-02-17 14 views
5

Il mio motore di gioco è una combinazione di Jython e Java, quindi eseguo un jar insieme a uno script python invece che a un classfile.Javaw crea ancora una finestra della console; Perchè è questo?

java -jar Jython.jar init.py 

Tuttavia, quando cambio "Java" a "javaw" non nasconde la console come farebbe normalmente. Perché è questo e c'è un modo per aggirarlo?

+4

Solo una supposizione: è il vostro 'java' /' riga di comando javaw' in un file batch che si è responsabile per la console? – zigg

+0

Beh, sta scappando da un file batch, ma questo è il mio unico modo di eseguire il codice, quindi se questo è il motivo per cui non funzionerà, mi limito ad attenervisi. – Luft

+0

L'ho appena testato via cmd anziché un file batch e il problema persiste. Idee? – Luft

risposta

3

Non credo che JavaConsole sia una funzione di java.exe rispetto a javaw.exe. La differenza è che java.exe ha stdout & stderr scrive su SystemConsole e javaw.exe viene eseguito senza stdout e stderr che scrive sulla SystemConsole. L'esecuzione di java.exe si bloccherà perché è connessa alla SystemConsole. L'esecuzione di javaw.exe restituirà il controllo alla SystemConsole di avvio (o allo script) e continuerà a funzionare senza una console di sistema.

Disabilitare JavaConsole utilizzando il pannello di controllo java o l'icona java sulla barra delle applicazioni.

from the java control panel

from the task bar java icon