2
import java.io.*;

public class ConsoleDemo {

public static void main(String[] args) {
    String str;
    Console con;

    con = System.console();

    if (con == null)
        return;

    str = con.readLine("Enter a string :    ");
    con.printf("Here is your string %s", str);
  }
}

このコードは本からコピーしたもので、文字列を入力すると画面にプロンプ​​トが表示されると書かれていますが、IDE は実行が終了したというメッセージを表示するだけで、プロンプトは表示されません。

4

5 に答える 5

2

Eclipse も Netbeans もコンソールの使用をサポートしています。Console.istty() メソッドは false を返し、使用するコンソールがありません。

コードを次のように変更すると、同じ結果が得られ、IDE 内から実行できます。

import java.io.*; 

public class ConsoleDemo { 

    public static void main(String[] args) { 
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a String and press enter");
        System.out.println("You entered the String: " + scan.nextLine()
    } 
} 
于 2012-06-11T19:07:57.323 に答える
1

どのIDEを使用していますか? このコードは、コマンド ラインから実行すると問題なく動作するため、IDE の構成に問題があることは明らかです。

次のコマンドを使用して、コマンド ラインからコードをコンパイルおよび実行します。

javac ConsoleDemo.java
java ConsoleDemo

編集:このリンクが示唆するように、使用System.Consoleは IDE で常に機能するとは限りません。または、単に使用することもできますSystem.in

于 2012-06-11T18:25:49.163 に答える
1

あなたのコードは、Eclipse とコマンド プロンプトの両方から動作しています。

Java 5 または + を使用している場合は、この方法も試してください。

Scanner in = new Scanner(System.in);
System.out.print("Enter a String : ");
String string = in.nextLine();
System.out.println("Here is your String : " + string);
于 2012-06-11T18:58:24.453 に答える
0

これは、IDE が(ウィンドウjavaw.exeなし -> コンソールなし) コマンドではなくjava.exe(コンソール ウィンドウあり) コマンドでこのコードを実行するため、 System.console()null が返されるためです。

標準的な解決策は、 で表される入力ストリームからデータを読み取ることです。これによりSystem.in、たとえば Scanner のように使用できます

Scanner keybord = new Scanner(System.in);
String line = keybord.readLine();
于 2012-06-11T18:29:38.423 に答える
0

デフォルトでは、Eclipse はコンソールを JVM に関連付けません。構成する必要がある場合があります。ただし、コマンドラインで実行すると、コンソールが確実に表示されるため、問題なく実行されます。

于 2012-06-11T19:38:26.117 に答える