我现在有三个.java文件,分别是A.java,B.java,exam.java,其中B.java extends A.java,exam.java是用来具体实现的。这三个文件都放在同一目录下,也就是说都属于同一个包,包名是test1,这个包的路径为:D:\apache-tomcat-5.5.25\webapps\myapps\WEB-INF\classes\test\test1,路径中的myapps是我在webapps目录下新建的一个文件夹,我的tomcat版本是5.5,JDK版本是1.5,这三个.java文件的代码分别如下:
A.java的代码:
package test.test1;
public class A{
int a=10;
void printT(){
System.out.println("class A");
}

B.java的代码:
package test.test1;
class B extends A{
int a='m';
void printB(){
super.printT();
printT();
System.out.println((char)a);
System.out.println(super.a);
}
void printT(){
System.out.println("classB");
}
}
exam.java的代码:
class exam{
public static void main(String args[]){
B b=new B();
b.printB();
}
}
A.java可以通过编译,但编译B.java时出现错误,错误如下:
B.java:2:找不到符号
符号:类A
class B extends A{
B.java:5:找不到符号
符号:变量super
位置:类test.test1.B
                    super.printT();
B.java:8:找不到符号
符号:变量super
位置:类test.test1.B
                    System.out.println(super.a);
3错误
我已经在网上找了很多这方面的资料,都说要配置classpath环境变量,具体要怎么配置也试过很多遍,均告失败,或者其它方面的错误变未知。
有哪位热心人士可以具体一点告诉我应该怎么做,谢谢!
英雄,救命!!!!
                   

解决方案 »

  1.   

    你的exam.java代码里不是没有package test.test1吗?
      

  2.   

    一个简单问题搞得好复杂:我把你的修改,比较下吧:
    A.java
    package   test.test1; 
    public   class   A

    int   a=10; 
    public void   printT()

    System.out.println("class   A"); 

    }   
    B.java
    package   test.test1; 
    public class   B   extends  A

    int   a='m'; 
    public void   printB()

    super.printT(); 
    printT(); 
    System.out.println((char)a); 
    System.out.println(super.a); 

    public void   printT()

    System.out.println("classB"); 


    exam.java
    import test.test1.A;
    import test.test1.B;class   exam

    public   static   void   main(String   args[]){ 
    B   b=new   B(); 
    b.printB(); 


    你的代码能通过编译吗??我表示怀疑!!!
      

  3.   

    其实一个.java的源文件中允许可以有几个类。比如:
    A.class中:
    class A
    {}
    class B
    {}
    class exam
    {}编译后生的的.class文件有多个。
    这样比你那样不知省了多少麻烦!
    还有就是父类中的方法你不用public 或protected声明,子类不能继承。但我也有个问题想问下其他的人,
    为什么在exam.java中不能用import test.test1.*;我这样写时不通过编译。
      

  4.   

    但我也有个问题想问下其他的人, 
    为什么在exam.java中不能用import   test.test1.*;我这样写时不通过编译。
    --------------------------------
    当然是可以的。
      

  5.   

    stupid_boy2007同志,你好,首先谢谢你的帮忙,我已经按照你的代码试了一遍,A.java可以通过编译,但是B.java还是不能通过编译, 请问还应该怎样改才不会有错?是不是classpath配置的问题?各位大虾请多多指教!!!谢谢大家的支持!!!
      

  6.   

    stupid_boy2007同志,我也知道一个文件里面可以写多个类,但是如果如果每个类比较复杂我觉得分开来写清晰一点。
    xunfengkuohai同志,你说你行,你能说一下你是怎样做到的吗?最好是具体一点。
      

  7.   

    stupid_boy2007同志,我也知道一个文件里面可以写多个类,但是如果如果每个类比较复杂我觉得分开来写清晰一点。
    xunfengkuohai同志,你说你行,你能说一下你是怎样做到的吗?最好是具体一点。
      

  8.   

    你是否设了ClassPath环境变量,而里面没有把 . 加进去
      

  9.   

    1,搞清楚你的项目是app还是web;
    2,app的话class放的太复杂了;
    3,web的话看你的web路径是不是设置对了。all~
      

  10.   

    classpath环境变量的"."是放在最前面呢,还是放在最后一条的前面?能不能说具体点,因为本人实在是新手,谢谢!!!
    还有就是像我的包这样放置的路径,classpath环境变量应该在后面附加什么样的路径上去?
      

  11.   

    把你的源文件放到一个目录下然后从 ms-dos进入这个目录 输入 javac *.java就可以了
      

  12.   

    把你的源文件放到一个目录下然后从   ms-dos进入这个目录   输入   javac   *.java就可以了
    这个我也知道,但是我问的不是这个问题,不过还是谢谢你的一番好意!!
      

  13.   

    classpath环境变量的"."是放在最前面呢,还是放在最后一条的前面?能不能说具体点,因为本人实在是新手,谢谢!!! 
    还有就是像我的包这样放置的路径,classpath环境变量应该在后面附加什么样的路径上去?
    ==========================
    .表示当前目录,最好是放在前面