Java 版本使用旧 target/source 新 java 版本的 api 可用

Java version when using older target/source the api of the new java version is available

我安装了 java 8 并将我的代码编译为目标和源代码 1.6。 这行得通,但如果代码中有 java 8 特定函数,我不希望代码编译。一切都编译,但如果 运行 在机器上 运行ning java 6 我得到

java.lang.NoSuchMethodError: java.lang.Float.isFinite(F)

有没有可能在编译的时候报这个错误?

您还需要将引导类路径设置为 JDK 6 安装。否则它将使用 JDK 8 并找到所有你不应该使用的新 类 和方法。

javac -source 1.6 -target 1.6 -bootclasspath "PATH TO JDK 1.6"

您还需要安装 1.6。