Java を使い始めたばかりで、コンソール入力が適切に機能するようにしようとしています。コードは次のとおりです。
System.out.println("Write a word: ");
Scanner keyboard = new Scanner(System.in);
System.out.println("DEBUG 1");
str = keyboard.nextLine();
System.out.println("DEBUG 2");
System.out.println(str);
これは、次のように、入力を 1 回だけ受け取り、入力を出力する必要があります。
Write a word:
DEBUG 1
Hello //My input
DEBUG 2
Hello //Output
しかし、これは何が起こるかです:
Write a word:
Hello //My input
DEBUG 1
//Waiting for new input
DEBUG 2
Hello //The first input
したがって、どういうわけか、行Scanner keyboard = new Scanner(System.in);で入力を取得しているように思えます。それを変数strに入れます。gcj を使用して、次のコマンドでコンパイルして実行します。
javac hello_world.java
java hello_world
編集:以前のUbuntu 10.04 32ビットの代わりに、Ubuntu 10.04 64ビットを使用して、別のコンピューターでプログラムを実行しようとしました。同じ方法で実行し、再コンパイルしませんでした。プログラムは正常に動作します。
なぜこのように振る舞うのか、何か考えはありますか?