質問
Ubuntu 8.04 をインストールしたばかりで、Java のコースを受講しているので、インストール中に IDE をインストールしてはどうだろうかと考えました。そこで、私は IDE として Eclipse を選択し、すべてがスムーズに動作することを確認するために、非常に単純なプログラム Hello World を作成しました。ユーザー入力にスキャナーを使用しようとすると、非常に奇妙なエラーが発生します。
私のコード:
import java.util.Scanner;class test {public static void main(string [] args){scanner sc = new scanner(system.in);System.out.println("hi");}}
出力:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: Scanner cannot be resolved to a type Scanner cannot be resolved to a type at test.main(test.java:5)
解決
Scanner クラスは Java 5 の新しいクラスです。Hardy のデフォルトの Java 環境が何であるかはわかりませんが、Sun のものではないため、古い可能性があります。
パッケージ sun-java6-jdk をインストールして最新バージョンを入手し、それを使用するように Eclipse に指示することをお勧めします。
他のヒント
1.5 より前のバージョンの Java を使用している場合、java.util.Scanner は存在しません。
Eclipse プロジェクトで使用するように設定されている JDK のバージョンはどれですか?
「プロジェクト」、「プロパティ」、「Java ビルド パス」を見て、「JRE システム ライブラリ」エントリを探します。その横にバージョン番号が表示されているはずです。
また、JDK 1.5 以降を使用しているにもかかわらず、プロジェクトに 1.4 としてコンパイルするように指示する特定の設定が設定されている可能性もあります。「プロジェクト」>>「プロパティ」>>「Java コンパイラー」でこれをテストし、「コンパイラー準拠レベル」が 1.5 以上に設定されていることを確認できます。
質問が投稿されてからかなり時間が経ちました。しかし、この解決策は依然として誰にとっても興味深いものかもしれません。実はとてもシンプルなんです...
Ubuntu では、他の代わりに Sun の JDK を使用するように Java コンパイラ「javac」を設定する必要があります。これまでに投稿された回答の一部との違いは、私が java ではなく javac について話していることです。これを行うには、シェルを起動し、次の操作を実行します。
- root または sudo としてコマンドラインに次のように入力します。
# update-alternatives --config javac
sun の jdk を指す番号を見つけて、その番号を入力し、「ENTER」を押します。
これで完了です。これからは、Ubuntu で java.util.Scanner をお楽しみいただけます。
System.out.println("Say thank you, Mr.");
Scanner scanner = java.util.Scanner(System.in);
String thanks = scanner.next();
System.out.println("Your welcome.");