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

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 自动生成包