1

Java EE 5 に対して Netbeans で Web アプリをコンパイルしています。String.isEmpty()関数が Java 6 でのみサポートされていることはわかっています。そうは言っても、コードで を使用してプロジェクトをコンパイルでき.isEmpty()ます。

Java EE 5 に対してコンパイルしている場合、Netbeans が Web アプリケーションのコンパイルを許可するのはなぜですか?

4

2 に答える 2

0

コンパイラ レベルは、コンパイルに使用する JDK レベルと同じではありません。コンパイラ レベルは構文のみをチェックし、もちろん別の出力を作成します。ただし、コンパイラ自体はクラスパスで jdk を使用するため、Java 5 オプションを使用してコンパイルし、クラスパスに Java 6 jar を使用すると、コードはエラーなしでコンパイルされます。クラスパスを確認する必要があります。

于 2013-02-08T23:48:24.037 に答える
0

多くの人が指摘しているように、Java EE のバージョンは Java SE (JDK) のバージョンと厳密に結び付いているわけではありません。ほとんどの場合、最小限の Java SE バージョンが必要ですが、それ以降のバージョンと互換性があります。

Java EE 5 仕様 (ダウンロード可能な PDF はこちら) は次のように述べています。

This specification requires that containers provide a Java Compatible™ runtime 
environment, as defined by the Java 2 Platform, Standard Edition, v5.0 specification 
(J2SE)

JSE バージョンは下位互換性があるため、Java 5 と互換性のあるコンテナーを使用して、Java SE 6 または Java SE 7 の上で実行できます。

プロジェクトの [プロパティ] > [ソース] > [ソース/バイナリ形式]を確認することで、Netbeans が使用している互換性レベルを確認できます。

「Java vs Java EE」についてまだ疑問がある場合は、SO で Java SE と Java EE の違いに関するいくつかの質問を探すことができます。

于 2013-02-09T00:05:06.737 に答える