demo.java.a包定义了Person类
 package demo.java.a ;
 public class Person
{
     public String talk()
   {
    return "Person —— >> talk()" ;
    }
}demo.java.b包调用了上面的包
TestPackage2.java package demo.java.b ;
 import demo.java.a.Person ;
 class TestPackage2
{
    public static void main(String[] args)
    {
        System.out.println(new Person().talk()) ;
     }
}这个程序在dos环境下运行时,说package demo.java.a 不存在。我分别采用两个文件夹存放demo.java.a和demo.java.b包。编译时输入:javac demo.java.b/TestPackage.java。就会出现错误。请 高手指教一下。

解决方案 »

  1.   

    指定classpath在编译时,指定-classpath ./demo所在目录
      

  2.   

    你要把引用的包放在main类所在包能看到的地方,你试一下把两个包放在一块。。
      

  3.   

    这个方法我已经试过了是可以的:
    首先你先编译Person类,因为TestPackage2类要用到它,编译之后,class文件肯定存在于demo.java.a包中。
    然后你编译TestPackage2类,因为现在需要Person类,所以需要指定Person类的路径:
    类似这样javac -cp “.;Person类的全路径” TestPackage2.java
    其中的 .;  在JDK5+是可选的,它表是的是当前路径;但是你需要加上,不然编译不过。这样你就可以运行TestPackage2类了。