javac -cp:找不到符号

时间:2012-04-11 13:20:01

标签: java command-line

我有3个类CustomerAddress,Customer和CustomerMain。

客户有进口声明:

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 

编译好

然后由于Customer依赖于CustomerAddress

我给

javac -cp . Customer.java

但编译器抱怨

error cannot find symbol CustomerAddress

4 个答案:

答案 0 :(得分:4)

  1. 编译类必须存在于与其包结构匹配的文件夹结构中。例如,类com.foo.bar.A必须存在于文件夹com/foo/bar/中。
  2. 使用像ant或maven这样的自动构建工具来做这类事情要容易得多。
  3. 如果您决定从命令行构建,则需要首先编译独立类:

    javac -d com/abc/customers/ CustomerAddress.java Customer.java CustomerMain.java
    
    哪个应该编译类并将它们输出到javac能够解决它们的地方。

答案 1 :(得分:1)

我知道这不是你要问的,但我可以建议使用eclipse的内置导出吗?

右键点击项目 - > 出口 - > Runnable jar文件 - > 确保你有正确的启动配置 - > 选择其余的 - > 点击完成 - > 用你的罐子

答案 2 :(得分:1)

您是否通过编译尝试过这种方式

javac *.java

答案 3 :(得分:0)

我不知道它是否是发布问题的工件,但您的包声明中customer没有's',而您的导入语句包含customers 一个's'。但是,在同一个包中,您不需要执行import