我在我的本地的D:\Java下有两个.java文件。一个是Test1.java如下:
import MyPack.*;
public class Test1{
public static void main(String []args)
{
MyPack.Balance test=new MyPack.Balance();
test.show();
}
}
复制代码
此文件调用我自定义的包(MyPack)另外一个是Balance.java如下:
package MyPack;
public class Balance
{
public Balance()
{
}
        public void show()
        {
        System.out.println("call show()");        
        }
}
复制代码
此文件是包的定义文件,然后我在dos下路径为D:\Java先编译javac  D:\java Balance.java
编译后在d:\java下自动生成了个MyPack文件夹并且在其中生成了Balance.class文件,
然后我在d:\java下编译Test1文件则有问题了,求指导这是为什么
PS下:如果我编译Balance时先手动创建MaPack文件夹,然后把Balance.java文件放在其中,然后在dos下直接编译就不会用问题了。不知道为什么呢?

解决方案 »

  1.   

    我认为这涉及到了JVM的运行机制,可能是在编译Test1时Java虚拟机由这句"import MyPack.*;"要来查找./MyPack这个目录中的文件Balance.java,具体的我也说不出不一个所以然来,推荐你一本书关于这方面的书:王森的《Java深度历险》
      

  2.   

    嗯嗯,谢谢你的推荐,我今天无意试了下,把D:\java中的Balance.java文件移除到桌面去了,这样Test1就编译通过了,也就是说只要在Test1同级目录中不能出现Balance.java不知道这是怎么回事