用Ant编译

时间:2013-03-12 21:13:08

标签: java eclipse ant junit

我有两个.class文件,我应该进行黑盒测试。它们位于包one.two.three中。我的测试也在同一个包中。在同一个包中有第三个.class文件,其目的是为我应该测试的Orders类保存一个枚举变量。在eclipse中,我可以通过直接导入枚举来使Orders的junit测试工作。

import one.two.three.Orders.ShippingMethod;

如果我尝试使用Ant或通过命令行执行此操作,我会收到错误“package one.two.three.Orders不存在”。如果我将import语句更改为

import one.two.three.*;

Ant,Eclipse和终端找不到我的任何类。我需要使用Ant编译和运行测试用例。课程在bin/one/two/three任何帮助都将非常感谢,谢谢。

2 个答案:

答案 0 :(得分:1)

导入Orders,因为它是类,并假设ShippingMethod是该类中的枚举,引用其类型的正确方法是Orders.ShippingMethod

尝试导入类的内部类型有时在Eclipse中很奇怪。这可能是由于Eclipse没有使用jdk中打包的javac编译器,而Ant确实如此(因为Ant不提供嵌入式编译器)。

 import one.two.three.Orders;


 public class Whatever {

    private Orders.ShippingMethod shipMethod;

 }

这应该适用于所有事情,因为这是正确的方法。

 import one.two.three.Orders.ShippingMethod;
由于没有

很容易混淆大多数编译器

 one/two/three/Orders/ShippingMethod.class

文件,这意味着类加载器不会在运行时找到它。

我敢打赌这是Eclipse嵌入式编译器中的一个错误,因为我已经看过很多。从好的方面来说,Eclipse嵌入式编译器的存在是为了在代码编辑和Eclipse之间提供更快,更紧密的集成。在黑暗的一面,这意味着Eclipse编译器和javac编译器有时会有所不同。如果有疑问,javac编译器可能是正确的。

答案 1 :(得分:0)

您需要设置类路径。

我完全不知道Eclipse(我使用NetBeans),但是我点击了Libraries -> add JAR/Folder

对于命令行,您需要指定类路径

java -cp path/to/my/files (...)