Eclipse Java - 将编译器设置为 Java 6 但仍然有 Java 7 methods/libraries 并且没有抱怨
Eclipse Java - Set compiler to Java 6 but still have Java 7 methods/libraries and no complains
对于一个项目,我必须使用 Java 6,因此我将我的 eclipse 编译器设置设置为 1.6(JDK 合规级别)。
但是,我包含了 java.nio.file.Files
这是一个 Java 7 库,我没有收到任何投诉。我可以确保我的项目特定设置设置为 1.6。我什至将我的整个工作区更改为 1.6 并重建,仍然没有抱怨。我的同事正在 java.nio.files.
上看到投诉
是否因为我有一个 jdk7 即使设置为 1.6 spcs 也能识别 java.nio.file.Files
?
JDK 合规级别 是 Java 语法的级别,而不是运行时库。它只会阻止您使用在更高版本中引入的语言功能,例如在 JDK 7.
中引入的 try-with-resources
如果你想为JDK6开发,你需要使用JDK6.
这是两个不同的东西:
- compliance 级别是关于 syntax 的,你可以在编写 Java 代码时使用(分别关于 Java 放入编译字节码的版本号)
- 但是您可以使用的库取决于您的项目正在使用的JDK!
换句话说:如果您真的想将项目限制为 Java 6 个库,则必须在系统上安装 Java 6 JDK,并指向在您的项目设置中(很可能,您当前的项目设置使用 newer-than-Java-6 JDK )。
和通常的免责声明:Java 6 已经在很多年前结束了。您应该尽一切努力升级您的设置。
Java 6 能够解释 java.nio.file.Files
因为没有特殊的 Java 7 语法对比 Java 7 和 Java 8 (lambda表达式等)。所以你正在研究标准库。卸载 Java 7 JDK 并安装 Java 6 JDK 然后你会发现 java.nio.file.Files
不再可用。
对于一个项目,我必须使用 Java 6,因此我将我的 eclipse 编译器设置设置为 1.6(JDK 合规级别)。
但是,我包含了 java.nio.file.Files
这是一个 Java 7 库,我没有收到任何投诉。我可以确保我的项目特定设置设置为 1.6。我什至将我的整个工作区更改为 1.6 并重建,仍然没有抱怨。我的同事正在 java.nio.files.
是否因为我有一个 jdk7 即使设置为 1.6 spcs 也能识别 java.nio.file.Files
?
JDK 合规级别 是 Java 语法的级别,而不是运行时库。它只会阻止您使用在更高版本中引入的语言功能,例如在 JDK 7.
中引入的 try-with-resources如果你想为JDK6开发,你需要使用JDK6.
这是两个不同的东西:
- compliance 级别是关于 syntax 的,你可以在编写 Java 代码时使用(分别关于 Java 放入编译字节码的版本号)
- 但是您可以使用的库取决于您的项目正在使用的JDK!
换句话说:如果您真的想将项目限制为 Java 6 个库,则必须在系统上安装 Java 6 JDK,并指向在您的项目设置中(很可能,您当前的项目设置使用 newer-than-Java-6 JDK )。
和通常的免责声明:Java 6 已经在很多年前结束了。您应该尽一切努力升级您的设置。
Java 6 能够解释 java.nio.file.Files
因为没有特殊的 Java 7 语法对比 Java 7 和 Java 8 (lambda表达式等)。所以你正在研究标准库。卸载 Java 7 JDK 并安装 Java 6 JDK 然后你会发现 java.nio.file.Files
不再可用。