1

我有 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 

编译得很好

那么由于客户依赖于客户地址

我给

javac -cp . Customer.java

但编译器抱怨

error cannot find symbol CustomerAddress
4

4 回答 4

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

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

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

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

于 2012-04-11T13:45:09.757 回答
1

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

右键单击项目->导出->可运行的jar文件->确保您的启动配置正确->选择其余->单击完成->使用您的jar

于 2012-04-11T13:43:27.057 回答
1

你试过编译吗,这样

javac *.java
于 2012-04-11T13:43:37.857 回答
0

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

于 2012-04-11T14:20:04.063 回答