【问题标题】:Cannot find the main class after converting java project to mavenjava项目转maven后找不到主类
【发布时间】:2011-09-04 02:55:18
【问题描述】:

我在 Java 中有一个非常简单的 HelloWorld 代码,可以正常工作。我正在使用 Eclipse 并试图弄清楚如何使用 maven2 eclipse 插件为项目导入依赖项。

    public class testMavenDep {

        public static void main(String arg[]){
            System.out.println("Hello World");
        }
    }

但是,当我右键单击项目 > 配置 > 转换为 maven 项目时,然后尝试运行它会给我一条错误消息说...

找不到主类:testMavenDep.testMavenDep。程序将退出。

控制台中的以下内容...

java.lang.NoClassDefFoundError: testMavenDep/testMavenDep 引起:java.lang.ClassNotFoundException:testMavenDep.testMavenDep 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 线程“main”中的异常

我的 pom 文件是...

<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>testMavenDep</groupId>
  <artifactId>testMavenDep</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

我的问题是,对于已经存在的 Java 项目,添加 maven 依赖项的正确方法是什么?我可以使用上述方法添加依赖项,但我遇到了丢失主类的问题。提前致谢!

【问题讨论】:

  • 您询问了 maven 但没有包含您的 POM 文件...
  • 我很抱歉...现在附上。

标签: java eclipse maven m2eclipse


【解决方案1】:

您将主类放入的源文件夹是什么?默认情况下,Eclipse 将其放在 src 中,但 maven 约定是 src/main/java。可能是添加 maven 依赖项会更改您的源文件夹,因此您的类不会被编译。

【讨论】:

  • 是的,这就是正在发生的事情。谢谢。
  • @Daniel 抱歉,这里的解决方案到底是什么?我将我的源文件移动到 src/main/java 但我得到了和你一样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多