我已经用Java 1.8编译了战争项目,在这里我意外地留下了一个未使用的lib,它是Java 1.8的一部分。其他所有lib都属于Java 1.7。
有人可以告诉我,如果我使用Java 1.7进行这场战争,这会产生影响吗?
AFAIK导入语句不会加载该类,当您对该类执行某些操作时,该类加载器会发生这种情况。
片段:
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
//testArrayList.stream().collect(Collectors.joining(","));
}
}
答案 0 :(得分:0)
如果您尝试在Java较低版本上运行jar,而该Java版本是用Java较高版本编译的。
然后,在使用java命令运行Java时会收到错误消息。
java.lang.UnsupportedClassVersionError:不支持的major.minor版本
显示的版本号描述了与类文件兼容的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兼容的类文件,请使用以下命令行:
javac -target 1.4 HelloWorld.java