未使用的从 Java 1.8 和 运行 Java 1.7 导入库

Unused imports lib from Java 1.8 and running with Java 1.7

我用 Java 1.8 编译了 war 项目,我不小心留下了一个未使用的库,它是 Java 1.8 的一部分。所有其他库都属于Java1.7.

有人能告诉我如果我 运行 这个 war 和 Java 1.7 有影响吗?

AFAIK 导入语句不会加载 class,当您对该 class 执行某些操作时,class 加载程序会发生这种情况。

片段:

import java.util.stream.Collectors;

public class Test {

    public static void main(String[] args) {
       //testArrayList.stream().collect(Collectors.joining(","));
    }
}

如果您将尝试 运行 低 java 版本的 jar,它是用高版本 java 编译的。

那么在使用 java 命令 运行 宁 java 时你会得到错误。

java.lang.UnsupportedClassVersionError: Unsupported major.minor version

显示的版本号描述了 class 文件兼容的 JRE 版本。

报告的主要数字是:

Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:维基百科)

要解决实际问题,您应该尝试使用较新版本的 Java JRE 运行 Java 代码或将目标参数指定给 Java编译器指示编译器创建与早期 Java 版本兼容的代码。

例如,要生成与Java 1.4 兼容的class 文件,请使用以下命令行:

javac -target 1.4 HelloWorld.java