2013-02-17 5 views
5

私のゲームエンジンはJythonとJavaの組み合わせなので、クラスファイルの代わりにpythonスクリプトとともにjarファイルを実行しています。Javawはまだコンソールウィンドウを作成します。どうしてこれなの?

java -jar Jython.jar init.py 

ただし、「java」を「javaw」に変更すると、通常のようにコンソールが非表示になります。なぜこれがあり、それを回避する方法がありますか?

+4

ただの推測:自身がコンソールに責任があるバッチファイルで、あなたの 'java' /' javaw'コマンドラインはありますか? – zigg

+0

これはバッチファイルを実行していますが、それはコードを実行する私の唯一の方法です。そのため、それが機能しないのであれば、私はそれに固執します。 – Luft

+0

バッチファイルではなくcmdからテストしただけで問題は解決します。アイデア? – Luft

答えて

3

私はJavaConsoleがjava.exeとjavaw.exeの機能であるとは思わない。違いは、java.exeにはstdoutがあります& SystemConsoleへのstderrの書き込みで、SystemConsoleへのstdoutとstderrの書き込みなしでjavaw.exeが実行されます。 java.exeを実行すると、SystemConsoleに接続されているためブロックされます。 javaw.exeを実行すると、起動しているSystemConsole(またはスクリプト)に制御が返され、SystemConsoleを使用せずに引き続き実行されます。

タスクバーのJavaコントロールパネルまたはJavaアイコンを使用して、JavaConsoleを無効にします。

from the java control panel

from the task bar java icon