我的项目是maven+spring项目
在代码中写main方法进行测试报错,错误:找不到或无法加载主类 xxx.xxx.xxx.Test
在网上搜了很多原因,什么classpath没配置(jdk1.5之后不需要配置classpath的),path路径写错了,引入的jar包有问题删掉重新引用,refresh项目,clean项目,rebuild项目,关闭程序再开,从svn上down下来重新导入什么的,都没有用,我只能说兄弟们你们没碰到疑难杂症啊。
然后看到有个帖子说,去到java文件目录下,直接javac编译,然后java运行,看看会如何
其实这是个非常好的方法,首先排除IDE的干扰,如果javac 或者java命令系统认不出来,肯定是环境变量设置的有问题。如果是其它的问题,也应该会有相应提示
于是我去试了一下,报了一个很奇怪的错误
Exception in thread "main" java.lang.NoClassDefFoundError: xxxxx<wrong name xxxxx>
找原因,http://stackoverflow.com/questions/7509295/noclassdeffounderror-wrong-name/7509317#7509317,这个帖子里有人问了这个问题,,,原来我的java文件是有package的,应该是到包的根目录去执行java命令,然后带着包的完整路径,试了一下是可以成功执行的。也就是说环境变量没有问题,那就是eclipse里的设置有问题
然后再找,发现有个帖子说,我们在eclipse下面新建maven项目,默认是没有src/main/java这个目录的,这使我们后来添加的,它在默认output folder里面的classes目录下并没有生成相应的class文件,需要修改成指定的。然后我试了一下先改成指定的,再改成默认的,就会把java文件编译到classes下面,然后再“Run As Java Application”就可以正常执行了
参见:http://blog.csdn.net/nich002/article/details/43273219