书上说JAVA虚拟机在运行时会自动导入默认包 但我实验了下载吗没有自动导入?我在当前目录建立cn.XXX包,即当前目录结构为 当前目录里包含 cn\XXX目录我再在当前目录建立一个属于默认包的文件(没给他指定是哪个包)。
用cn.XXX里的类调用默认包里的文件,编译出错,说找不到默认包里的那个类。这是为什么? 不是自动导入了默认包吗?那在cn.XXX包中的类应该就可以用这个默认包里的类啊?

解决方案 »

  1.   

    你应该弄明白java的默认包是什么,是怎么导入的
    一般是运行时,java虚拟机通过设置的classpath找到lib下的包
    你想让它自动找到,就加到classpath中就可以了
      

  2.   

    默认包,你可以认为只有 java.lang.*其它的都不是默认的!包括你自己写的没有package声明的也一样。所以,一旦你书写了没有 package的类,那么在别的package里面想访问他们可是....SORRY,我还不知道怎么访问他们呢?哈哈!!!因为无法import,而不import更找不到他们。
      

  3.   

    楼上说的对,java只默认自动帮你导入java.lang包,你要手工添加import语句导入!
      

  4.   

    你的classpath里面要加入  '.'
    这样就能找到默认包里的类了,JAVA编程思想里面说的
      

  5.   


    支持楼上的用Eclips的时候ctr+shift+o自动导包
      

  6.   

    但不是说如果一个类声明时不加package 就是在默认包里面吗?
      

  7.   

    lang包下面的子包需要自己导入,呵呵
    比如
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;而lang包下面的不要导

    java.lang.String;
      

  8.   

    楼主的问题是没有设置classpath .;
    也就是当前目录,所以JRE在搜索的时候找不到你的地址,所以报错