无法使用 Eclipse 进行编译

cannot compile with eclipse

提问人:fraaanz 提问时间:11/15/2023 更新时间:11/16/2023 访问量:53

问:

我正在尝试编译项目下载

https://mkyong.com/tutorials/jsf-2-0-tutorials/ 使用 eclipe 时,当我从命令行运行时,一切顺利:mvn clean compile pakage

C:\esempi\JSF2.0-hello-world-example-2.1.7\JavaServerFaces>mvn -version Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39) Maven home: C:\Users\a00569321\sw\apache-maven-3.8.8-bin\apache-maven-3.8.8 Java version: 1.7.0_13, vendor: Oracle Corporation, runtime: C:\Users\a00569321\sw\jdk1.7.0_13\jre Default locale: en_US, platform encoding: Cp1252 OS name: "windows 8", version: "6.2", arch: "x86", family: "windows"

但是当我尝试使用 eclipse 进行编译时,我得到:enter image description here

我的eclipse配置是:构建路径enter image description here

编译enter image description here

和配置enter image description here

enter image description here

我尝试更改几乎所有内容(java istallation、maven 的二进制文件、ecplipse 使用的更改编译器); 我希望像使用 maven 一样进行编译;

Java Eclipse Maven 构建

评论

2赞 Gyro Gearless 11/15/2023
为什么是 Java 1.7,如果我可以问的话?
3赞 greg-449 11/15/2023
有些代码是使用 Java 8(类版本 52)编译的,您必须至少使用 Java 8 才能运行它。Java 7 已经结束生命多年,您应该使用更新的东西。

答:

0赞 Alfred Benigno 11/15/2023 #1

java.lang.UnsupportedClassVersionError 表示编译版本高于实际运行时。从 eclipse 编译时,它使用您在 IDE 中配置的 java 合规性级别。使用 maven 进行编译时,它使用 pom.xml 文件中的 Java 版本。您遇到的类版本 52 是 Java 8,而不是 7。 确保 pom.xml 文件中的 java(jdk 不是 jre)版本已安装在系统中的“属性”下。一旦你设置了它,然后通过eclipse菜单进行项目更新,最后做mvn dependency:sources dependency:resolvemvn clean install

类似的东西

看看这篇文章 unsupportedclassversion

评论

0赞 fraaanz 11/15/2023
怎么可能?我没有任何版本的 Java 1.8 istalled,在我的 pom 中有(属性部分没有): <build> <finalName>JavaServerFaces</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
2赞 greg-449 11/15/2023
@fraaanz 它是用 Java 8 编译的 maven 代码本身 - 你不能用 Java 7 运行这个 maven。
0赞 fraaanz 11/16/2023
@greg-449。谢谢,但实际上,如果我使用 mvn clean compile 包,它可以在 mvn -version 在帖子开头给我输出的地方工作,这怎么可能?
0赞 greg-449 11/16/2023
@fraaanz Maven 由许多组件组成,有些可能使用 Java 7 编译,有些则使用 8 编译。您尝试运行的部件需要 Java 8。
0赞 fraaanz 11/16/2023 #2

将 froom eclipse 2023_09 更改为 2019_09 效果很好,因为嵌入的 maven 是早期版本;因此,eclipse 与非常古老的(非常古老的 :))版本并不完全兼容; 希望有人能发现它有用