Ant-JUnit 错误:Ant 希望 JUnit .jar 位于其类路径中

发布于 2024-10-15 01:08:26 字数 190 浏览 2 评论 0原文

我对 JUnit 和 Ant 有点陌生。我想知道这个错误是什么意思:

The <classpath> for <junit> must include junit.jar if not in Ant's own classpath

我正在编译一个Java项目,我无法超越这一点。

I am a bit new to JUnit and Ant. I want to know what this error means:

The <classpath> for <junit> must include junit.jar if not in Ant's own classpath

I am compiling a Java project, and I cannot get beyond this point.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

情释 2024-10-22 01:08:26

Junit ant 任务的文档提供了如何将 junit.jar 放入类路径的选项列表:

http://ant.apache.org/manual/Tasks/junit.html

为了保存您的查找,下面复制了这些选项。我的偏好是选项 1。

  1. 将 junit.jar 和 ant-junit.jar 都放在 ANT_HOME/lib 中。
  2. 不要将它们放在 ANT_HOME/lib 中,而是将它们的位置包含在 CLASSPATH 环境变量中。
  3. 使用 -lib 将两个 JAR 添加到类路径中。
  4. 使用构建文件中的 a 元素指定两个 JAR 的位置。
  5. 将 ant-junit.jar 保留在 ANT_HOME/lib 中的默认位置,但将 junit.jar 包含在传递给 . (自 Ant 1.7 起)

The documentation of the Junit ant task gives a list of options for how to get junit.jar onto the classpath:

http://ant.apache.org/manual/Tasks/junit.html

To save you the lookup, the options are reproduced below. My preference is option 1.

  1. Put both junit.jar and ant-junit.jar in ANT_HOME/lib.
  2. Do not put either in ANT_HOME/lib, and instead include their locations in your CLASSPATH environment variable.
  3. Add both JARs to your classpath using -lib.
  4. Specify the locations of both JARs using a element in a in the build file.
  5. Leave ant-junit.jar in its default location in ANT_HOME/lib but include junit.jar in the passed to . (since Ant 1.7)
呆头 2024-10-22 01:08:26
<property name="lib.dir" value="webcontent\WEB-INF\lib" />

<path id="classPath">
    <pathelement location="${lib.dir}/junit-4.11.jar" />
</path>

<target name="test" depends="build">

    <junit haltonerror="false" haltonfailure="false" fork="yes">
        <classpath path="${lib.dir}">
            <path refid="classPath" />
        </classpath>

    </junit>
</target>
<property name="lib.dir" value="webcontent\WEB-INF\lib" />

<path id="classPath">
    <pathelement location="${lib.dir}/junit-4.11.jar" />
</path>

<target name="test" depends="build">

    <junit haltonerror="false" haltonfailure="false" fork="yes">
        <classpath path="${lib.dir}">
            <path refid="classPath" />
        </classpath>

    </junit>
</target>
兰花执着 2024-10-22 01:08:26

今天我花了几个小时解决这个问题。我通过 Project|Properties|Java Build Path 在 Eclipse 中指定了所有 .jar 文件,但从

 <classpath> for <junit> must include junit.jar if not in Ant's own classpath

Eclipse 运行 Ant 时仍然出现错误。

从命令行运行 Ant 可以正常工作(我的类路径环境变量中有所有内容)。

但在 Eclipse 中,唯一有效的方法是显式地声明元素内的类路径,例如:

    <path id="JUnit 4.libraryclasspath">
        <pathelement location="...\plugins\org.junit_4.11.0.v201303080030\junit.jar"/>
        <pathelement location="...\plugins\org.hamcrest.core_1.3.0.v201303031735.jar"/>
        <pathelement location="...\lib\ant-junit4.jar"/>        
    </path>
    <path id="Ant1.classpath">
        <pathelement location="bin"/>
        <pathelement location="."/>
        <path refid="JUnit 4.libraryclasspath"/>
    </path>

... stuff...

    <target name="test1" depends="compile">
        <junit>
            <classpath refid="Ant1.classpath"/>
        </junit>

    </target>

如果没有在 junit 元素内显式指定类路径,它每次都会在 Eclipse 中中断,即使只是一个简单的

 <junit/> 

引用

我不是专家,只是报告今天的工作。

-ctb

I spent a couple hours with this problem today. I had the .jar files all specified in Eclipse via Project|Properties|Java Build Path, but was still getting the

 <classpath> for <junit> must include junit.jar if not in Ant's own classpath

error when running Ant from Eclipse.

Running Ant from the command line would work fine (I had everything in the classpath environment variable).

But in Eclipse the only thing that worked was to explicitly state the classpath inside the elements, e.g.:

    <path id="JUnit 4.libraryclasspath">
        <pathelement location="...\plugins\org.junit_4.11.0.v201303080030\junit.jar"/>
        <pathelement location="...\plugins\org.hamcrest.core_1.3.0.v201303031735.jar"/>
        <pathelement location="...\lib\ant-junit4.jar"/>        
    </path>
    <path id="Ant1.classpath">
        <pathelement location="bin"/>
        <pathelement location="."/>
        <path refid="JUnit 4.libraryclasspath"/>
    </path>

... stuff...

    <target name="test1" depends="compile">
        <junit>
            <classpath refid="Ant1.classpath"/>
        </junit>

    </target>

Without explicitly specifying the classpath within the junit element, it would break in eclipse every time, even just a bare

 <junit/> 

reference

I'm no expert, just reporting what worked today.

-ctb

凉宸 2024-10-22 01:08:26

我认为原因如下:junit.jar 不在您的 CLASSPATH 环境变量中。将 junit.jar 添加到您的 CLASSPATH 或将其添加到您在 ant 构建文件中定义的类路径。

这是ant 简介

I believe that the following is the cause: junit.jar is not in your CLASSPATH environment variable. Either add junit.jar to your CLASSPATH or add it to the classpath that you define in your ant build file.

Here is an introduction to ant.

ゝ杯具 2024-10-22 01:08:26

我不知道这意味着什么,但就我而言,似乎由于 Dropbox 而发生了冲突。重新启动 Netbeans 解决了该问题。可能与我使用Linux和同学使用Windows有关,但我不确定。

“只需重新启动 Netbeans”对于 stackoverflow 的答案来说可能太简单了,但如果有人发布了它,它会节省我一些时间......

I have no clue what it means, but in my case it seems there was a conflict because of Dropbox. Restarting Netbeans resolved the issue. Might have something to do with my using Linux and classmates using Windows, but I'm not sure.

"Just restart Netbeans" might be too simple for a stackoverflow answer, but if someone had posted it, it would have saved me some time...

被翻牌 2024-10-22 01:08:26

窗口->首选项->蚂蚁->运行时->类路径 将 junit-xx.jar 添加到全局条目作为外部 jar 文件。

Window -> Preferences -> Ant -> Runtime -> Classpath Add junit-xx.jar to the Global Entries as an external jar file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文