小弟把classpath设为d:\。然后在d:\下创建了 
Bb.java 包含语句package com.lvbin.simpletest;
public class Bb{
 public void rrint(){
   System.out.println("hello");
 }
}然后在e:\创建Aa.java包含语句:import com.lvbin.simpletest.*;public class Aa{
 public static void main(String[] args){
 Bb b=new Bb();
 b.rrent();
 }
}Aa.java编译时提示无法访问Bb,但把开头改成import com.lvbin.simpletest.Bb;
就可通过编译。小弟十分费解,请各位朋友帮忙!

解决方案 »

  1.   

    楼主,package不能乱用的,
    package com.lvbin.simpletest;说明这个类处于当前工程目录/com/lvbin/simpletest下面
    不然package就失去意义了,你以为好玩啊
      

  2.   

    请问你的Bb.class有没有放到这个文件夹中呢D:/com/lvbin/simpletest?
      

  3.   

    你的D:/这个根目录下肯定是有一个Bb的class文件或者Bb.java文件,你应该把它删除掉,然后你用import com.lvbin.simpletest.*;就不会错误了。这是因为 如果你的import没有具体申明是用到包的那个具体类,而只是import入所有这个包的类,也就是你用的*号,编译器在工作过程中,遇到这个Bb类首先不是找你import的包,而是你的classpath目录,结果编译器找到了D:/下有这个Bb类,就调用,结果编译器发现这个Bb类本应该放在D:/com/lvbin/simpletest这个文件夹中,但是它却放在D:/,也就是放错了地方,编译器就报错了。
    但是如果你import import com.lvbin.simpletest.Bb,这就明显的告诉编译器说:如果你在编译时发现Bb类,那就直接去D:/com/lvbin/simpletest找吧,就用这里的Bb,不用犹豫了!
      

  4.   

    同意 fankobe的第一次回答所提出的问题 !!另外:虚拟机导入包时首先查看当前目录下是否有所要的包 如果没有的话就在classpath指定的包目录中去查找