※ ChatGPTを利用し、要約された質問です(原文:eclipseの設定のJREとコンパイラの違い)
eclipseの設定のJREとコンパイラの違い
このQ&Aのポイント
インストール済みのJREは、Javaプログラムの実行、デバッグに使用される。コンパイラは、Javaプログラムのコンパイルに使用される。
コンパイラ準拠レベルを指定することにより、指定したJavaのバージョンでコンパイルを行うことが可能。コンパイラ準拠レベルとはいったい???
インストール済みのJREのバージョンとコンパイラ準拠レベルの指定によって、コードの実行可否やエラーチェックの結果が異なることがある。
eclipseの設定で、インストール済みのJREとコンパイラの違いについて教えて
いただけないでしょうか。
自分で調べてみた限りでは、、、
インストール済みのJREは、Javaプログラムの実行、デバッグに使用される。
コンパイラは、Javaプログラムのコンパイルに使用される。コンパイラ自体はeclipse
内部のものを使用しており、コンパイラ準拠レベルを指定することにより、指定した
Javaのバージョンでコンパイルを行うことが可能。
上記の仕様だと、例えばインストール済みのJREのバージョンを1.6、コンパイラ準拠レベル
に1.4を指定したとします。こうした場合、
String s = "hoge";
if(s.isEmpty()) {
・・・・
というコードはコンパイルエラーになるはずです。(String#isEmpty()は1.6から導入)
コンパイルエラー⇒クラスができない⇒実行できない、という流れを想定していたの
ですが、実際は、エディタ上でエラーになっておらず、コンパイルもでき、実行もできました。
インストール済みのJRE、コンパイラともに1.4を指定すると、エディタ上でエラーに
なっていたし、コンパイルも行われていませんでした。
コンパイラ準拠レベルとはいったい???という状態です。
どこかに詳しく説明されているサイトなども教えて頂けるとうれしいです。
宜しくお願いします。
OS:Windows7 HomePremium
eclipse:eclipse-jee-indigo-SR1-win32-x86_64.zip
お礼
確認しました。確かに拡張for文やジェネリクスはエディタ上でエラーになりますね。 ありがとうございました。