java.lang.ClassNotFoundException:edu.umd.cs.findbugs.FindBugs2

时间:2011-02-01 18:03:31

标签: ant findbugs

在ant任务中运行findbugs时获得以下异常。
在我的findbugs家里,我有一个0.7版本的findbugs jar和1.3.8版本的jsr305 jar。如果我错过了什么,请告诉我 findbugs:

  

[findbugs]从ant任务执行findbugs    [findbugs]运行FindBugs ...
   [findbugs] java.lang.NoClassDefFoundError:edu / umd / cs / findbugs / FindBugs2
   [findbugs]引起:java.lang.ClassNotFoundException:edu.umd.cs.findbugs.FindBugs2
   [findbugs] at java.net.URLClassLoader $ 1.run(Unknown Source)
   [findbugs] at java.security.AccessController.doPrivileged(Native Method)
   [findbugs] at java.net.URLClassLoader.findClass(Unknown Source)
   [findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
   [findbugs] at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)
   [findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
   [findbugs]无法找到主类:edu.umd.cs.findbugs.FindBugs2。程序将退出。
   [findbugs]线程“main”中的异常
   [findbugs]输出保存到findbugs.xml

<property name="build" value="C:\.hudson\jobs\project\workspace\child\classes" />
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/> 
<target name="findbugs" >
    <findbugs home="C:\apache-ant-1.7.1\lib\findbugsant" 
              output="xml" 
              outputFile="findbugs.xml"> 
        <sourcePath path="C:\.hudson\jobs\project\workspace"/> 
        <class location="${build}" /> 
    </findbugs> 
</target>

2 个答案:

答案 0 :(得分:9)

在taskdef中,使用classpath属性指定包含findbugs类(FindBugsTask)的jar的确切位置。尝试这样的事情:

<taskdef name="findbugs" classpath="C:\apache-ant-1.7.1\lib\findbugsant\findbugs-ant.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />

我的findbugs jar是 findbugs-ant.jar ,所以在建议的解决方案中检查一下,并使用适用于你的情况的findbugs文件名,你应该没问题。

答案 1 :(得分:0)

它看起来像是findbugs ant的安装/配置。

在上面的代码段中,看起来findbugs已在<{1}} ant的子文件夹中已安装,而不仅仅是lib被复制到其中documented