Eclipse - java.lang.ClassNotFoundException [英] Eclipse - java.lang.ClassNotFoundException
问题描述
当试图从Eclipse开始我的JUnit-Test时,我得到一个ClassNotFoundException。当从控制台运行mvn test时 - 一切正常。此外,Eclipse中没有报告问题。
When trying to start my JUnit-Test out of Eclipse, I get a "ClassNotFoundException". When running "mvn test" from console - everything works fine. Also, there are no problems reported in Eclipse.
我的项目结构如下:
- 父项目(pom-packaging)
- Web项目(war-packaging - 我的JUnit测试在这里)
- Flex项目
- 配置项目
编辑:如何找不到班级?这是一个简单的HelloWorld应用程序,没有特殊的库。
edit: How can the class not be found? It's a simple HelloWorld-Application with no special libraries.
这是我的JUnit的运行配置:
alt text http://www.walkner.biz/_temp/runconfig.pngHere's my JUnit's run-configuration: alt text http://www.walkner.biz/_temp/runconfig.png
Testclass(但正如我所说;它不适用于简单的HelloWorld ...):
Testclass (but as I said; it doesn't work with a simple HelloWorld either...):
import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import biz.prognoserechnung.domain.User; import biz.prognoserechnung.domain.UserRepository; import biz.prognoserechnung.domain.hibernate.UserHibernateDao; public class UserDaoTest { /** * the applicationcontext. */ private ApplicationContext ctx = null; /** * the user itself. */ private User record = null; /** * Interface for the user. */ private UserRepository dao = null; @Before public void setUp() throws Exception { String[] paths = { "WEB-INF/applicationContext.xml" }; ctx = new ClassPathXmlApplicationContext(paths); dao = (UserHibernateDao) ctx.getBean("userRepository"); } @After public void tearDown() throws Exception { dao = null; } @Test public final void testIsUser() throws Exception { Assert.assertTrue(dao.isUser("John", "Doe")); } @Test public final void testIsNoUser() throws Exception { Assert.assertFalse(dao.isUser("not", "existing")); Assert.assertFalse(dao.isUser(null, null)); Assert.assertFalse(dao.isUser("", "")); } }
推荐答案
几次遇到这种情况,经过很多尝试,我找到了解决方案。
I've come across that situation several times and, after a lot of attempts, I found the solution.
检查您的项目构建路径并启用特定的输出文件夹对于每个文件夹。通过项目的每个源文件夹逐个进行设置,并设置maven将使用的输出文件夹。
Check your project build-path and enable specific output folders for each folder. Go one by one though each source-folder of your project and set the output folder that maven would use.
例如,您的Web项目的
src / main / java
应该有target / classes
在Web项目下,测试类应该在web项目下也应该有target / test-classes
。For example, your web project's
src/main/java
should havetarget/classes
under the web project, test classes should havetarget/test-classes
also under the web project and so.使用此配置将允许您执行eclipse中的单元测试。
Using this configuration will allow you to execute unit tests in eclipse.
只需一个建议,如果您的Web项目的测试需要一些配置文件在资源下,请确保将该文件夹作为源文件夹,并进行正确的构建路径配置。
Just one more advice, if your web project's tests require some configuration files that are under the resources, be sure to include that folder as a source folder and to make the proper build-path configuration.
希望它有帮助。
这篇关于Eclipse - java.lang.ClassNotFoundException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!