2
我正在逐漸將項目從Java 7遷移到8。Java:在使用高版本JDK編譯但在低版本上運行時阻止使用高版本API JRE
我想做到這一點,2步 - 遷移構建機器,然後運行時機器。
但即使編譯器ARG遊戲設置爲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-版本與 - 螞蟻與-A-新盤jdk那麼這根)。除了[動物嗅探器](http://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/index.html)這樣的Maven插件外,'-bootclasspath'選項是最好的現在得到。希望'-release'選項能夠進入Java 9。 – charlie