日期:2014-05-20  浏览次数:20761 次

已打包的类出现无法编译 菜鸟提问
源码如下
  package testjava.com;
import com.chlm.Cat;
public class Dog {
  public static void main(String args []) {
  Cat c = new Cat();
  }
}
编译时出现如下
  D:\testjava\com>javac Dog.java
Dog.java:2: 软件包 com.chlm 不存在
import com.chlm.Cat;
  ^
Dog.java:5: 找不到符号
符号: 类 Cat
位置: 类 testjava.com.Dog
  Cat c = new Cat();
  ^
Dog.java:5: 找不到符号
符号: 类 Cat
位置: 类 testjava.com.Dog
  Cat c = new Cat();
  ^
Cat这个类在它的文件夹里我已经成功编译且运行,但在上面这里却出现找不到!以下是我的环境变量设置
.D:\testjava\com\chlm;.
弄了很久还是找不到问题所在。

------解决方案--------------------
我认为楼主的问题是根据classpath找不到Cat这个类。
环境变量加一下:
d:\testjava;
(在指定路径时,不需要把包结构加上,根据楼主的信息,我猜测楼主的Cat这个类在d:\testjava\com\chlm下。
而com\chlm与包 com.chlm结构对应。按上面设置环境变量,系统会在d:\testjava下查找com\chlm\Cat这个类。

而如果在环境变量里指定 d:\testjava\com\chlm; 则系统会在d:\testjava\com\chlm下查找com\chlm\Cat,就找不到了。
不知说的是否清楚,供参考.