我有3类CustomerAddress,Customer和CustomerMain。

客户有进口声明:

import org.abc.customers.CustomerAddress;


虽然CustomerMain具有导入声明:

import org.abc.customers.CustomerAddress;
import org.abc.customers.Customer;


所有这些类的软件包都是

package org.abc.customer


现在,该程序在eclipse上工作正常,但是当我尝试编译并在cmd提示符下运行时,它将无法编译

javac CustomerAddress.java


编译良好

那么由于客户取决于CustomerAddress

我给

javac -cp . Customer.java


但是编译器抱怨

error cannot find symbol CustomerAddress

最佳答案

编译的类必须存在于与其包结构相匹配的文件夹结构中。例如,文件夹com.foo.bar.A中必须存在类com/foo/bar/
使用自动化构建工具(如ant或maven)进行此类操作确实要容易得多。


如果确定要从命令行进行构建,则需要首先编译独立类:

javac -d com/abc/customers/ CustomerAddress.java Customer.java CustomerMain.java


它应该编译这些类并将它们输出到javac可以从中解析它们的地方。

09-16 06:46