Java 7から8に徐々に移行しています。Java:上位バージョンのJDKを使用してコンパイルするときに高バージョンのJDKを使用しないで低バージョンで実行する場合
私は2つの段階でこれを行うにはしたいと思います - ビルドマシン、その後実行時のマシンを移行します。
しかし、コンパイラの引数がsource=7
とtarget=7
に設定されていても
、JAVA 8つのAPIを使用した場合、streams and Optional
のように、コンパイルがまだ成功し渡しているようです。明らかに、コードははをClassNotFoundException
で中断し、Java 7マシン上で実行されます。
これは非常に驚くべきことです。 正しく指定された低バージョンJREで実行しているときに、高バージョンAPIを使用しないようにするにはどうすればよいですか?
私は本当に誰かがより良いソリューションを持っていることを願っています... –
[関連する質問]を参照してください(http://stackoverflow.com/questions/40087200/can-i-compile-java-for-an-older-java-新しいバージョンのant-with-a-new-jdk-so-it-gen)が含まれています。 [Animal Sniffer](http://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/index.html)のようなmavenプラグインの他に、 '-bootclasspath'オプションはあなたができることの中で最高です今すぐ入手してください。そして、Java 9にするための '-release'オプションを期待してください。 – charlie