线程" main"中的例外情况java.lang.NoClassDefFoundError:Maven项目

时间:2014-06-26 15:35:29

标签: java maven

我在以下结构中有一个maven项目。

TestRun
|
|--src/main/java/com/main/CallAddNumbers.java (Package - Com.main)
|
|--src/test/java/com/test/RunTest.java (package com.test)

这是示例程序

package com.main;    
public class CallAddNumbers {

    public static void main(String[] args) {
        com.test.AddNumbers.addNumbers(5, 4);
    }   
}

package com.test;

public class AddNumbers {   
    public static void addNumbers (int a, int b){   
        System.out.println(a+b);        
    }
}

当我从main调用addNumbers方法时,我最终会遇到以下错误。可能很简单,但无法弄明白。

Exception in thread "main" java.lang.NoClassDefFoundError: com/test/RunTest
    at com.main.CallAddNumbers.main(CallAddNumbers.java:6)
Caused by: java.lang.ClassNotFoundException: com.test.RunTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 1 more

2 个答案:

答案 0 :(得分:0)

你说它可能很简单,只是想在进一步查看之前检查这是你的实际文件结构!

|
|--src/main/java/com/main/CallAddNumbers.java (Package - com.main)
|
|--src/test/java/com/test/addNumbers.java (package com.test)

答案 1 :(得分:0)

将此导入语句添加到CallAddNumbers

import test.java.com.test.AddNumbers;

它会正常工作。顺便说一下,不要在测试包中编写生产代码