这里是TestPackageOne类的代码
----------------------------------------------------
package cn.letiteasy.testPackage;public class TestPackageOne {
public void show() {
System.out.println("HelloWorld!");
}
}
----------------------------------------------------
这里是TestPackageFour类的代码
----------------------------------------------------
import cn.letiteasy.testPackage.*;public class TestPackageFour {
public static void main (String args[]) {
TestPackageOne a = new TestPackageOne();
a.show();
}
}
----------------------------------------------------
我先把TestPackageOne.class放到了对应的目录下了
现在我的文件结构是
root\
root\TestPackageOne.java
root\TestPackageFour.java
root\cn\letiteasy\testPackage\TestPackageOne.class
但是我编译TestPackageFour.java的时候出现如下错误:
----------------------------------------------------
错误的类文件: d:\java\class\TestPackageOne.java
文件不包含类 TestPackageOne
请删除该文件或确保该文件位于正确的类路径子目录中。
                TestPackageOne a = new TestPackageOne();
                ^
1 错误
----------------------------------------------------
但是要是我把 TestPackageFour.java 中的
import cn.letiteasy.testPackage.*;
改成
import cn.letiteasy.testPackage.TestPackageOne;
就可以通过了
请大侠指点迷津啊~

解决方案 »

  1.   

    把 root\TestPackageOne.java 这个java文件放到 别的目录下就可以了因为在编译的时候会优先找到这个个java文件 编译 然后因为这个没有包结构 所以报错import cn.letiteasy.testPackage.TestPackageOne; 指明了是包里面的类所以不会编译这个java文件
      

  2.   

    恩……奇怪了~
    首先非常感谢你的回答,我的问题也解决了
    但是我想问一下,为什么要编译这个root\TestPackageOne.java源文件呢?
    想进一步了解
    引用:
    “因为在编译的时候会优先找到这个个java文件 编译 然后因为这个没有包结构”
    这句话的意思^^
      

  3.   

    这是java 虚拟机 查找类的机制你想深入的了解下载 深入java 虚拟机 这本书看看