Java 1.8项目转Eclipse Maven项目后运算符报错、主类找不到问题求助
问题根因与解决方案
1. 版本报错(<>运算符不支持)的问题
Maven 默认会使用低版本的maven-compiler-plugin配置,默认的源码编译级别和目标字节码版本通常为 1.5/1.6,即使你在 Eclipse 全局设置了 JDK 1.8,Maven 的配置优先级会覆盖 Eclipse 本地设置。你仅在 pom 中定义了java.version属性,但没有将该属性关联到编译器插件,该属性不会自动生效。
2. 找不到主类的问题
- 你的 pom.xml 存在语法错误:
</build>标签结束后直接写了<dependency>,缺失了外层的<dependencies>起始标签,会导致 Maven 解析依赖失败,项目编译异常 mvn eclipse:eclipse命令早已废弃,该命令生成的旧版 Eclipse 配置和当前 Eclipse 内置的 M2E Maven 插件不兼容,会导致项目结构、源目录、依赖识别异常- 未验证主类全限定名与配置的一致性、Eclipse 源目录标记是否正确
具体操作步骤
第一步:修复 pom.xml 配置
替换你的 pom.xml 为以下修正后的内容,补全语法错误,新增编译器插件配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myApplication</groupId> <artifactId>myApplication</artifactId> <version>0.0.1-SNAPSHOT</version> <name>myApplication</name> <properties> <java.version>1.8</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <maven.compiler.release>${java.version}</maven.compiler.release> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <!-- 新增maven编译插件配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>org.my.Application.main.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> <!-- 补全缺失的dependencies起始标签 --> <dependencies> <dependency> <groupId>com.oracle.ojdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.8.5</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.8.5</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> </dependencies> </project>
第二步:清理旧的无效配置
- 在 Eclipse 中删除该项目(不要勾选删除磁盘内容)
- 打开项目在磁盘的根目录,删除
.project、.classpath文件和.settings文件夹 - 不要再次执行
mvn eclipse:eclipse相关命令
第三步:重新导入项目
- 在 Eclipse 中选择
导入 > Existing Maven Projects,选择项目根目录导入 - 导入完成后右键项目选择
Maven > Update Project,勾选Force Update of Snapshots/Releases后确认
第四步:验证配置与运行
- 核对项目属性:
Java Build Path的JRE为1.8、Java Compiler合规性为1.8、Project Facets的Java版本为1.8 - 找到你的主类
org.my.Application.main.Main对应的.java文件,右键选择Run As > Java Application即可正常运行 - 如果要运行打包后的jar,执行
mvn clean package后,在target目录下执行java -jar myApplication-0.0.1-SNAPSHOT.jar即可
内容的提问来源于stack exchange,提问作者willberthos
相关产品推荐
相关产品推荐

