新手初学
java2sdk1.4
uedit32
dos内
classpath 未定义在d:\lesson目录下创建两个类
Packjava.java 
---------------------
package cn.yhb;
public class Packjava
{
public void go()
{
System.out.println("go");
}

}
-----------------------
Importjava.java
-----------------------
import cn.yhb.*;
class Importjava
{
public static void main(String[] args)
{
Packjava pj=new Packjava();
pj.go();
}
}-----------------
编绎时
javac -d . Packjava.java
通过, 在当前目录下按照内中package的设定,在相应目录下生成了Packjava.class文件
javac Importjava.java  
提示error:
    can not access Packjava bad class file:.\Packjava.java.............但是如果在Importjava 中,将import cn.yhb.Packjava; 直接指定,相同方法编绎,不会出问题,并得出相要的结果
或者是删除当前目录下的Packjava.java源文件,仍就使用cn.yhb.*,也可以通过,得出想要的结果思考:
  导入包的类中如果使用了与当前目录下java源文件相同名称的类,在编绎时java会以当前目录下的同名文件优先,不管类型,并且不会再查找.因为是java源文件,所以编绎会报错.
  各位,我这样理解行不?请指教
还有,我个人觉得这样理解好像那理不对,package与import这样用法不应该存在这样的问题,因为我们常常会一边写包,一边写导入包的测试文件,这样很不方便?

解决方案 »

  1.   

      同名文件所属包不同。你使用的是import 包名.*;我觉得不会起冲突,这也是为什么建议import下跟全路径的原因。提示error是因为你的class没有配好,试试classpath配成*;就可以了。
      

  2.   

    提示error是因为你的class没有配好,试试classpath配成*;就可以了你的意思是 set classpath=. ;%classpath%
    ??
    不过,我还是提示错误,这次是提示package cn.yhb不存在
    我在是D:\lesson\javac Importjava.java
    而当前目录下:有一个cn\yhb子目录,而且里面也有我已编绎好了的Package.class 类