2012-04-11 88 views
1

我有3个类CustomerAddress,Customer和CustomerMain。javac -cp:找不到符号

客户有一个import语句:

import org.abc.customers.CustomerAddress; 

虽然CustomerMain有一个import语句:

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 

回答

4
  1. 编译的类必须在其包装结构相匹配的文件夹结构中存在。例如,类别com.foo.bar.A必须存在于文件夹com/foo/bar/内。
  2. 使用像ant或maven这样的自动化构建工具来做这种事情的确很容易。

如果你决心通过命令行来构建,你首先需要编译独立报班:

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

应该编译类并将它们输出某处的javac就能解决它们。

1

我知道这是不是你正在问,但我可以建议使用eclipse中内置的输出吗?

右键项目 - > 出口 - > 运行的JAR文件 - > 确保你有启动配置右键 - > 选择休息 - > 点击Finish - > 使用的jar

1

有你通过编译试过,这样

javac *.java 
0

我不知道,如果它的发布问题的神器,但是你包的声明有没有customer一个“S”和import语句有customers一个“s”。但是,在相同的包中,您不需要执行import

+0

谢谢..是的,它是发布这个问题的神器。同一个包中的import语句是多余的,但是它也有任何副作用,或者对代码无害。 – LivingThing 2012-04-11 14:25:03

+0

只要你的包名拼写正确,我相信它是无害的:-) – 2012-04-11 14:27:30