2013-05-07 49 views
0

我觉得自己在这里是一个完整的新手。我最近转而使用Mac进行开发,并且遇到了一些项目的问题。我觉得它是一个类的路径问题,在Mac的类路径而不是Eclipse的构建路径...这里。 ..Junit,Selenium和NoClassDefFound

与Junit的硒项目。

我试图编译:

java.lang.NoClassDefFoundError: com/google/common/base/Function 
at Login.testLoginPage(Login.java:19) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at junit.framework.TestCase.runTest(TestCase.java:176) 
at junit.framework.TestCase.runBare(TestCase.java:141) 
at junit.framework.TestResult$1.protect(TestResult.java:122) 
at junit.framework.TestResult.runProtected(TestResult.java:142) 
at junit.framework.TestResult.run(TestResult.java:125) 
at junit.framework.TestCase.run(TestCase.java:129) 
at junit.framework.TestSuite.runTest(TestSuite.java:255) 
at junit.framework.TestSuite.run(TestSuite.java:250) 
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Function 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 20 more 

我已经走遍了论坛,我似乎无法化解。我已将libs添加到我的项目中。当我使用MAVEN(基础项目之外)时,pom.xml会正确导入依赖项并运行(尽管我没有使用Maven)。我比较了maven pom.xml导入的内容和我的原始项目导入的内容,并且这些jar是相同的。这里是一个简短列表...

  • Apache的mime4j
  • BSH-1.3.0
  • CGLIB的节点p-2.1_3
  • 公地编解码器1.6
  • 公地集合-3.2
  • 公地EXEC-1.1
  • 公地-IO-2.2
  • 公地的JXPath-1.3
  • 个公地lang3
  • 共享记录-1.1.1
  • cssparser-0.9.8
  • 番石榴14.0
  • hamcrest核
  • hamcrest库-1.3
  • 的HtmlUnit-2.11
  • ....
  • ....
  • ....
  • selnium- Java的2.31.0
  • 的JUnit 4.11
  • ....

我可以采取完全相同的项目,并导入我的旧Windows计算机上,它编译没有任何问题/运行。这里的任何帮助将是MOST赞赏!男人我觉得这不应该是这种痛苦......我觉得我忽略了一些东西。或者坦率地说,它可能是Mac和我的新内容。

+0

附加信息..我找到了什么原因,我在我的/ Library/Java/Extention目录中引用了硒源jar。如果我删除,日食会返回一个错误: 说明\t资源\t路径\t位置\t类型 容器“JRE系统库[JavaSE的-1.6]”引用不存在的图书馆/图书馆/的Java /扩展/硒Java的2.31.0-srcs.jar我不知道为什么会发生这种情况。我尝试在不同的Mac上使用相同的设置,下载eclipse,下载受尊敬的jar等等,并且项目立即被解雇......任何想法? – bcar 2013-05-07 16:49:10

+0

从此链接下载Selenium服务器文件http://selenium.googlecode.com/files/selenium-server-standalone-2.32.0.jar,然后将其添加到lib。 – Hemanth 2013-05-07 19:28:49

+0

HemChe我已经把jar添加到项目中,它不会改变编译或者我有这个/ Library/Java/Extention依赖(但是发生了!)的事实。 – bcar 2013-05-07 21:03:44

回答

0

我不得不在Eclipse中重新创建我的jre6安装的运行时。

通过单击Windows的>首选项> Java的>安装JRE

再加入我的JRE回来做。