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

包之间相互引用类时该如何编译和执行(急)?
我现在在学JAVA基础,看完基础内容的一半了,有一些疑问,是关于包和接口的内容的.

问题:   书上说在包与包之间怎么互相引用?(比如我定义一个MyPack的包,书上说为了使程序找到MyPack,程序在的紧邻的上层目录执行,我先在包外面编译了一个文件,然后把源文件与.class文件都放进了MyPack文件夹中,再用java命令执行时出错了)

源程序如下:
package   MyPack;
import   BookPack.*;

class   UseBook{
  public   static   void   main(String   args[])
  {
    Book   books[]   =   new   Book[5];
    books[0]=new   Book( "Java   Beginners   Guide ", "Schildt ",2001);
    books[1]=new   Book( "java2   programmers   Reference ", "Schildt ",2000);
    books[2]=new   Book( "HTML   Programmers   Reference ", "Powelll   and   Whitworth ",1998);
    books[3]=new   Book( "Red   Storm   Rising ", "Clancy ",1986);
    books[4]=new   Book( "On   the   Road ", "Kerouac ",1955);

    for(int   i=0;   i <books.length;i++)   books[i].Show();
  }
}
这是一个包中的程序文件.

BookPack包中的内容如下:

package   BookPack;

class   Book{
  private   String   title;
  private   String   author;
  private   int     pubDate;

public   Book(String   t,String   a,int   d)
  {  
      title=t;
      author=a;
      pubDate=d;
  }

public   void   Show()
  {
    System.out.println(title);
    System.out.println(author);
    System.out.println(pubDate);
    System.out.println();
  }
}

关键问题是不知道怎么编译和执行.

如果哪位仁兄能给些帮助,本人不胜感激.

------解决方案--------------------
包里面CLASS 默认是FREINDLY的 在包外不能调用 你把BOOK类生命诚PUBLIC看看
------解决方案--------------------
javac ..\BookPack\*.java ..\MyPack\*.java
java MyPack.UseBook
------解决方案--------------------
java *.java
就行
用Eclipse那些事不用你管
------解决方案--------------------
1.编译时路径可以无关,但是需要引用的类型必须路径正确
2.你应该首先编译BookPack包下的Book.java文件,得到一个Book.class(假设当前目录是c:\)
3.将该.class文件放到.\BookPack\下去
4.在当前目录下编译UseBook类
5.将编译完成的UseBook.class类放入.\MyPack\目录下
6.在c:\下使用java MyPack.UseBook运行