2016-04-08 9 views
3

私は多くの喜びでJava 1.8を使用しています。有名な "JREはワークスペースにインストールされていません"。何か害を及ぼすことはできますか?

私のワークスペース内のプロジェクトの1つは、コンパイルしてJava 1.6と互換性がなければならないため、適切なEclipseオプションを変更しました。この問題を解決する方法について多くの質問と回答があり

Build path specifies execution environment JavaSE-1.6. There are no JREs 
installed in the workspace that are strictly compatible with this environment. 

は、今私は、有名なメッセージが表示されます。だから問題はない。

しかし、この警告を無視すると、理論的にどのような問題が発生する可能性がありますか? (すべてが1.6上でうまく動作しているように見えます)

+1

Java 7または8にのみ存在するクラスを使用すると、Eclipseはエラーを検出しません。ランタイムが不足しているクラスエラーが発生します。 –

答えて

1

1.6ターゲットコードでは、JDK1.8で導入されたクラスまたはインターフェイスが誤って使用される可能性があります。ワークスペース内の1.6ターゲットに関連付けられたJREが実際にJRE1.8または1.7である場合、コードはコンパイルされますが、実行時にはNoClassDefFoundErrorのようなものになる可能性があります。

+0

確かに、私は、Eclipseが新しいHashMap <>()のように空の<を試してみると、エラーが発生するので、eclipseがそれを検出するという理解になりました。しかし、それらのnoclassdeffounderrorの取得は、古代のJavaバージョンをインストールする時間、無視すべきではない深刻なものです。 –

+1

@TinusTate empty - <>、lambda、およびtry-with-resourcesのような新しい**構文**(言語仕様内)のコンパイラレベルチェックを変更します。指定されたJREが仕様の最小値以上の機能を追加できるため、新しいライブラリクラスとメソッドをチェックしません。大きな例として、8つのjavafxがJREでは標準ではありませんでしたが、それを追加して有効に使用することができました。 –

関連する問題