使用Ant编译



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

import one.two.three.Orders.ShippingMethod;

如果我尝试使用Ant或通过命令行执行此操作,我会得到错误"package one.two.three.Orders不存在"。如果我将进口对账单更改为

import one.two.three.*;

Ant、Eclipse和终端找不到我拥有的任何类。我需要使用Ant编译并运行测试用例。课程在bin/one/two/three。如有任何帮助,我们将不胜感激,谢谢。

导入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编译器可能是正确的。

您需要设置类路径。

我不知道Eclipse的具体情况(我使用NetBeans(,但我点击了Libraries -> add JAR/Folder

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

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

相关内容

  • 没有找到相关文章