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

新手求指导(java初学者)
我在我的本地的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下直接编译就不会用问题了。不知道为什么呢?

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