是尚学堂马士兵视频里的一个实例Dog.java和Cat.java,不知道问题出在哪了:Cat.java 的代码如下:package com.bjsxt.java140;class Cat {
}
Dog.java 的代码如下:import com.bjsxt.java140.*;public class Dog {
public static void main(String[] args) {
Cat c = new Cat();
}
}//javac Cat.java 可以正常编译生成.class文件,Cat.class文件在F:\java\testpackage\com\bjsxt\java140目录下。/** javac Dog.java(在F:\java\testpackage目录) 编译有 1 个错误,提示如下:Dog.java:7: 找不到符号
符号:构造函数Cat()
位置:类Cat
Cat c = new Cat();
1个错误
*///我在环境变量->系统变量的classpath中也添加了"F:\java\testpackage" 可问题还是没解决,不知道怎么回事。
}
Dog.java 的代码如下:import com.bjsxt.java140.*;public class Dog {
public static void main(String[] args) {
Cat c = new Cat();
}
}//javac Cat.java 可以正常编译生成.class文件,Cat.class文件在F:\java\testpackage\com\bjsxt\java140目录下。/** javac Dog.java(在F:\java\testpackage目录) 编译有 1 个错误,提示如下:Dog.java:7: 找不到符号
符号:构造函数Cat()
位置:类Cat
Cat c = new Cat();
1个错误
*///我在环境变量->系统变量的classpath中也添加了"F:\java\testpackage" 可问题还是没解决,不知道怎么回事。
}
得是public的其他类才能访问啊,你这么定义只能在同一个包中访问
两个办法:1.把Dog.java和Cat.java都放在F:\java\testpackage\com\bjsxt\java140下;
2.改Cat为public class
你的dog.java是放在和com同级的目录下吗?
Cat.class 文件在F:\java\testpackage\com\bjsxt\java140\Cat.class
Dog.java 文件在F:\java\testpackage\Dog.java目录结构是 F:\java\testpackage\com\bjsxt\java140按照4楼大哥的方法还是不行。我甚至把马士兵老师的文件和目录原本的拷过来运行都是一样的错误提示。
另外dog.java要和com在同一目录下
再编译和运行dog.java
直接输入 javac -d cat.java 回车也有问题。
重新打开cmd 后还是同样问题,我真是郁闷死了。
我现在把目录修改如下:Cat.java 文件在F:\java\testpackage\com\bjsxt\java140\Cat.java
Cat.class 文件在F:\java\testpackage\com\bjsxt\java140\Cat.class
Dog.java 文件在F:\java\testpackage\com\bjsxt\java139\Dog.java Dog.java程序修改如下:package com.bjsxt.java139; //就是把目录改了,多加了这一句,现在编译运行可以通过,
//但是原先的问题一直没有解决,郁闷
import com.bjsxt.java140.*; public class Dog {
public static void main(String[] args) {
Cat c = new Cat();
}
}
package com.bjsxt.java140;public class Cat
{
}
import com.bjsxt.java140.Cat;public class Dog
{
public static void main(String[] args)
{
Cat c = new Cat();
}
}
把Cat.java 和 Dog.java 放到F:\java\testpackage
javac -d . cat.java
javac dog.java
java Dog
就可以了.
meteor57 :非常感谢您,按照您的方法试了一下真的可以,这个小问题郁闷了一个下午了。可是我还有个疑问就是: import com.bjsxt.java140.Cat; 为什么用这个编译可以通过;
而import com.bjsxt.java140.*; 把 .Cat 改成 .* 就会出现上述问题呢???不解??