我写了一个Test类,它的第一行是package rr; 
我用javac -d . Test.java 编译它,编译后生成了rr文件夹,里面有Test类文件,我在rr所在的目录里写了另一个类Test1,这个类使用了Test这个类,它的第一行是import rr.*;但是编译却通不过, 
Test1.java:7: 无法访问 Test 
错误的类文件: .\Test.class 
类文件包含错误的类: rr.Test 
请删除该文件或确保该文件位于正确的类路径子目录中。 
Test t = new Test(); 

1 错误

解决方案 »

  1.   

    不知道这么说楼主明白不明白,还是用个ide吧
      

  2.   

    应该是classpath 的问题吧,classpath  变量的设置前边加上 .; 试试看看
      

  3.   

    javac -cp .. Test1.java
    这样就ok了
      

  4.   

    哈哈,使用同一个包中的类是不需要import的!!
      

  5.   

    哈哈,使用同一个包中的类是不需要import的!!
      

  6.   


    谁说我使用同一个包中的类,Test是rr包中的类,Test1可不属于rr包
      

  7.   

    是因为你写了import rr.*;
    这样,编译器就会在rr/rr/目录下找Test.java,而不是rr目录下,所以提示找不到Test.java
    你如果非要使用导入语句,那么请把Test1.java放到和rr同一个目录下,只有即可以找到!
      

  8.   

    // d:\demo 假设这是工作目录d:\demo中新建一个类Test.javapackage rr;
    class Test(){
    }编译
    d:\demo\javac -d . Test.java此时Test.class在 d:\demo\rr\Test.class d:\demo\rr 中新建一个类Test1.javapackage rr;
    //import rr.*;
    class Test1(){
    public static void main(String[] args){
     System.out.println ( new Test()); //这里用到了rr包中的Test类 
    }
      }编译
    d:\demo\set classpath=d:\dmeo;.
    d:\demo\javac  Test1.java执行Test1
    d:\demo\java rr.Test1 
      

  9.   

    楼主指的是Test源文件不在rr包里,而class文件在rr里吗,没这样用过,感觉import导入的是类或接口什么的,不能导入编译后文件吧
    如果Test源文件在rr包里,Test1与rr同级的话,用import rr.*导入是没有问题的,还要注意包权限
      

  10.   

    我Test1与rr是在同一个目录的,是同级的
      

  11.   

    同一个包中的类可以不用import,你这样表达的意思是没用的。
      

  12.   

    1.D:\lingxiao\daima>notepad Test.java
       package rr;
    public class Test{
    }
    2.D:\lingxiao\daima>javac -d . Test.java
    3.D:\lingxiao\daima\rr>notepad Test1.java
    import rr.*;
    public class Test1{
    public static void main(String[] args)
    {
      Test t=new Test();
    }
     }
    4.我把这个Test类打包,方便使用。
    D:\lingxiao\daima>jar cvf abc.jar .\rr
    然后在daima目录下可以看见abc.jar。
    我把abc.jar放在c盘下新建的一个lib文件下。
    然后设置classpath的环境变量,在classpath环境变量
    里加c:\lib\abc.jar (注意环境变量加abc.jar,因为这个类在.jar包里)。
    5。删除rr文件下的Test.class(如果你有)。
    6。D:\lingxiao\daima\rr>javac Test1.java
    7。OK。
    你试试,我这样做是行的。
    我是新手,慢慢做的很麻烦,
    有高手也可以指点下其他方法。
      

  13.   

    "我在rr所在的目录里写了另一个类Test1,这个类使用了Test这个类,它的第一行是import rr.*;但是编译却通不过, 
    Test1.java:7: 无法访问 Test "
    此时执行java Test1肯定没有办法使用到Test类,java默认是从当前路径下面开始找rr/test.class,(与import无关),关键是classpath找不到路径
    因此lz在执行的时候应当java -cp .;d:/rr Test1应该可以了,告诉java虚拟机你的class文件从哪里找,import中的与c中的include不是同一个意思。关键是要用告诉java执行从哪里找到你的class文件
      

  14.   

    ../rr/Test.java
    ../Test1.java
    楼主是这样的吗?如果是的话找不到 Test
    就说明 classpath 没配置好
    set classpath=.;%classpath%
      

  15.   

    是..Test.java
      ..//rr/Test1.java
    你刚刚理解反了.
    看题目.
      

  16.   


    哦,了解了
    你的是
    ../rr/Test.class
    ../Test.java
    ../rr/Test1.java是这样子吧这样子的话你在 Test1.java中根本就不用
    import rr.Test;
      

  17.   

    他没有说明Test1是rr包中的类.
      

  18.   

    应该是同一个包下的类是不用import的
    呵呵
      

  19.   

    你自己在18楼说的
    ..//rr/Test1.java既然Test1.java在rr目录下
    你还import 什么啊?
    import 了的话就会找../rr/rr/目录下的Test.class文件
    了啦吧?
      

  20.   

    你应该把rr前面的目录加入到CLASSPATH中
    如:
    .../rr/Test.java
    .../Test1.java
    注意:上面两个...是同一个文件夹。。