import xxx.*的问题
//C1.java:
package mypack;
public class C1
{
}
//C2.java
import mypack.*;
class C2
{
C1 c1 = new C1();
}
//C3.java
import mypack.C1
class C3
{
C1 c1 = new C1();
}
编译C2.java时出现如下问题:
D:\C2.java:5: cannot access C1
bad class file: .\C1.java
file does not contain class C1
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
C1 c1 = new C1();
^
1 error
但是编译C3时却没有任何问题!
请高手指点!
------解决方案--------------------不能啊,我编译C3也是报同样的错误啊。
------解决方案--------------------楼主不要说是都放在同一个目录下在编译啊
------解决方案--------------------C2的问题是 自定义的包是不能用*导入的!!!!
------解决方案--------------------在cmd下,编译java文件后产生的.class字节码文件没有放在包里的,所以需要建立mypack,把相应的.class文件放在这个目录下,IDE工具下可以自动建立mypack
------解决方案--------------------关键在于package mypack;这句话
这句话是包的声明
import mypack.*;会在mypack文件夹下找C1
但是它找不到,找到的是带mypack的C1
你把package mypack;去掉然后自己建立一个文件夹把C1.class放进去就可以了
import mypack.C1;找的是mypack文件下带package mypack;的C1
也就是默认类名是mypack.C1
如果按上面的做就编译错误
总结
import mypack.*;是按文件名
import mypack.C1;是按类名
------解决方案--------------------如果在同一个包下。。。
------解决方案--------------------用java -d 自动生成包