1.没有问题的maven web 项目导入myeclipse后报小红叉。
出发点1:看jre是不是对的。
出发点2:找到.settings目录下的org.eclipse.jdt.core.prefs文件,查看里面的版本号是否有问题。
我是先把library jre1.5去掉,引入jre1.7 然后在org.eclipse.jdt.core.prefs里把所有1.5替换成1.7之后搞定了的。
2.maven使用Junit报错classNotFound。
而且是jvm直接报错,弹出对话框后
点确定,再打印异常信息。
Exception in thread "main" java.lang.NoClassDefFoundError: junit/framework/TestCase
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
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)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Caused by: java.lang.ClassNotFoundException: junit.framework.TestCase
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)
... 13 more
这不是坑爹吗?!
目录结构如下:
运行"1"处的MainTest报错。classNotFound。
使用自己建的library和maven的都不行,只能有使用myeclipse自带的才行,可是我要用Junit4.11以上啊!
解决了好久,各种看依赖关系,看对.project、.claapath和.setting里面的配置,和其他正常运行的项目对比完全看不出来问题 。
后来还是前辈帮我解决了,是maven目录规范的问题。
问题是:Junit的使用需要在src/test/java里面使用!!!
所以运行"2"处的MainTest就没问题了。
当然maven这一段坑爹的逻辑是怎么实现的,可以怎么改配置来实现就不知道。