我有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可以从中解析它们的地方。