1

javaw.exeLaunch4jで作成されたスタートアップラッパーを使用してデフォルトで実行されるGUIプログラムがあります。

このプログラムは、コマンドラインから実行して、出力をコンソールに出力することもできます。

コンソールが表示されているかどうか、つまり出力したテキストが表示されているかどうかをどのように検出できSystem.out.println()ますか?

私の理解では、これはプログラムがJavaw /wrapperを介して開始されたか、直接によって開始されたかによって異なりますjava -jar myprog.jar。両方のstartsメソッドをプログラムの使用と区別する方法はありますか?

4

2 に答える 2

3

System.console()が返された場合、コンソールはありません。これは、の代わりにでnullプログラムを起動したときに発生します。例:javawjava

import javax.swing.JOptionPane;

public class Example {
    public static void main(String[] args) {
        if (System.console() != null) {
            System.out.println("Hello on the console");
        } else {
            JOptionPane.showMessageDialog(null, "Hello, there's no console");
        }
    }
}

これをコンパイルしてから、またはのいずれかで開始してみてjava Exampleくださいjavaw Example

于 2012-09-19T12:31:00.027 に答える
-1

$ 0は、シェルで最後のcmdを開始したプログラムです。

于 2012-09-19T12:27:38.070 に答える