我现在在学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();
 }
}关键问题是不知道怎么编译和执行.如果哪位仁兄能给些帮助,本人不胜感激.

解决方案 »

  1.   

    包里面CLASS 默认是FREINDLY的 在包外不能调用 你把BOOK类生命诚PUBLIC看看
      

  2.   

    javac ..\BookPack\*.java ..\MyPack\*.java
    java MyPack.UseBook
      

  3.   

    回一,二楼:  我试过了(加public),也不行,
             运行java UseBook时,错误提示如下:C:\java2\BookPackB>javac UseBook.java
    UseBook.java:2: package BookPack does not exist
    import BookPack.*;
    ^
    UseBook.java:7: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      Book books[] = new Book[5];
      ^
    UseBook.java:7: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      Book books[] = new Book[5];
                         ^
    UseBook.java:8: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      books[0]=new Book("Java Beginners Guide","Schildt",2001);
                   ^
    UseBook.java:9: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      books[1]=new Book("java2 programmers Reference","Schildt",2000);
                   ^
    UseBook.java:10: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      books[2]=new Book("HTML Programmers Reference","Powelll and Whitworth",1998);
                   ^
    UseBook.java:11: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      books[3]=new Book("Red Storm Rising","Clancy",1986);
                   ^
    UseBook.java:12: cannot resolve symbol
    symbol  : class Book
    location: class BookPackB.UseBook
      books[4]=new Book("On the Road","Kerouac",1955);
                   ^
    8 errors说不存在BookPack包,而BookPack包和BookPackB包我是放在同一级目录下,不知道错误在哪,
    盼回复.
      

  4.   

    你把路径写出来 不知道你的目录情况  给你个例子 
    import com.aegon_cnooc.report.util.ReportConstants;
    这里的路径是这样的project souce\com\aegon_cnooc.report\util
      

  5.   

    C:\java2\BookPackB>javac UseBook.java
    你不能这样编译。因为你BookPack包里面的东西没有编译好。
      

  6.   

    java *.java
    就行
    用Eclipse那些事不用你管
      

  7.   

    1.编译时路径可以无关,但是需要引用的类型必须路径正确
    2.你应该首先编译BookPack包下的Book.java文件,得到一个Book.class(假设当前目录是c:\)
    3.将该.class文件放到.\BookPack\下去
    4.在当前目录下编译UseBook类
    5.将编译完成的UseBook.class类放入.\MyPack\目录下
    6.在c:\下使用java MyPack.UseBook运行