1.当你编译test2.java时,一定要把test1.class和test2.java文件放到同一个文件夹下,才能正常编译test2.java,否则就会报你碰到的这个问题。

解决方案 »

  1.   

    package java.test;
    从1.2开始,sdk拒绝以"java."开始的包
    你还是换个名字把
      

  2.   

    1.编译时可以javac *.java这样编译
    2.java文件的第一行加上package test;
    不能加星号
    最好自己起包名,否则碰到与标准类库同名的时候会有冲突
    不明白你的环境变量f是什么意思
    你加了包名后,其它class使用就要import,就像你最后写的那样import test.*;
      

  3.   

    public class test1 {
        
        String s = "abc";
    }//test2.javapublic class test2 {
        
        int a;
        test1 t1 = new test1();
    }
    这两个文件在同一个目录下的,怎么test2.java编译通不过
    我要做个pakeage再做个程序来import这个包该怎么做,能不能给个例子,小弟有礼了
      

  4.   

    在编译test2.java之前要保证test1.java便宜成test.class假设你test1.java放在f:/youpakeage/test/下
    //test1.java
    pakeage youpakeage.test;
    public class test1 
    {
        String s = "abc";
    }//test2.java
    import youpakeage.test.*;
    public class test2 {
        int a;
        test1 t1 = new test1();
    }
    当然你要设置以下类路径
      

  5.   

    我照楼上的大哥去做而且在系统的classpath里加了f:/youpackage怎么还是不好编译test2.java
    但是java1.java已经编译好了 在编译test2.java时还出现了找不到包的错误
      

  6.   

    还有如果你的java1.java是加了package的话
    要按照你的package来建立相应的目录
    如java1.java里的package是pakeage youpakeage.test
    就要在你的test2.java文件所在的目录下建立youpakeage\test这样的目录
    然后把java1.class(是编译后的class文件)放到test目录下
    这样你的test2.java才能编译通过像这样多个class相互引用时,最好的方法是同时编译
    编译时用如下命令:javac -d . *.java
    -d是告诉编译器自动按包名建立相应目录
    .是告诉目录建立在当前目录下,可以改成其它的目录
      

  7.   

    我弄出来了,为什么我一个一个文件编译就不行,我把test1.class生成出来了为什么编译test2.java还是不行,但是javac *.java却是可以的还有一个问题我可以做一个包,但不是楼上的朋友说的在java文件建立一个路径我可不可以指定一个目录来放class文件作为包的名字 例如 f:/xuexi/myjava下,我在我的test1.java中package该如何书写呢?
      

  8.   

    代码改成如下
    package test1;class test1 {
        
        String s = "abc";
    }import test1.*;
    class test2 {
        
        int a;
        test1 t1 = new test1();
    }指定目录不可能的。。在JAVA书写中不行的。。
      

  9.   

    我弄出来了,为什么我一个一个文件编译就不行,我把test1.class生成出来了为什么编译test2.java还是不行,但是javac *.java却是可以的这个已经解决了,是因为我的环境变量中没有加入.;当前路径这个变量一加就好了我在f:\javatest\test下的两个文件
    //test1.java
    package javatest.test;
    import java.io.*;
    public class test1 {
        
        String s = "abc";
    }
    //test2.java
    import javatest.test.*;
    import java.io.*;
    public class test2 {
        
        String s2 = "abc";
        test1 t1 = new test1();
    }
    我用javac -d c:\ test1.java把生成的包放在c盘根目录下,这是可以的,编译后生成了c:\javatest\test\test1.class
    现在我编译test2.java是这样写的javac test2.java而且我在classpath中已经加入了c:\这个路径,编译时怎么报错,找不到test1.class,麻烦高手解决一下,谢谢!!!!
      

  10.   

    应该是不会报错的
    你用javac之前,先输入set classpath看看你的classpath里是否有C:\这个classpath
    没有的话要重起cmd窗口的
      

  11.   

    还有你的程序没有main方法
    编译通过了也不能运行的我刚才先javac -d c:\ test1.java编译你的test1.java
    classpath我没改,我把test2.java拷贝到c:\下,编译可以通过
      

  12.   

    楼上的方法我试了一下是可以的,但是如果我把程序编译到c:\sjh 下 javac -d c:\sjh\ test1.java 我在classpath中加了c:\sjh;是可以编译的,但是如果我classpath中加一个当前路径.;
    就是classpath = .; c:\sjh;或者 classpath = c:\sjh; .;就无法编译
    但是如果不加 [  .;  ] 当前路径的话我的同一个目录下的文件如果类A中有类B,编译了b以后却无法编译a除非 javac *.java,不能一个一个的编译,请问classpath应该如何书写
      

  13.   

    这个和classpath无关,是import时出的错
    把import语句改成:import javatest.test.test1;
    或者你调用test1的时候,这样调用:
    javatest.test.test1 t1 = new javatest.test.test1();出这个问题的原因是:你的当前目录下,有以test1.java或test1.class文件,把这两个文件删掉就可以编译通过
    不删的话,编译器寻找时,好像首先寻找的是当前目录,找到的第一个以test1为文件名的文件,就当做需要的文件来用,所以就会报错。