本帖最后由 hbin_apple 于 2010-08-24 19:27:40 编辑

解决方案 »

  1.   

    javac DefaultTest.java 生成的是DefaultTest.class吧..
    然后运行的时候会在DefaultTest.class里面找名为DefaultTest的class的main..
    然后自然找不到了= =
      

  2.   

    DefaultTest.java   主类名得与文件名一致  
      

  3.   

    把文件名改成B.java 与主类文件名一致!
      

  4.   

    前面说的都对,补充一点,带包结构的编译要用 javac -d 命令,具体的希望楼主自己查,印象深刻一点。
      

  5.   

    package pack;
    public class DefaultTest{
    public static void main(String[] args){
    new B().funcB();
    }
    }class A{
    String s = "abc";
    public void funcA(){
    System.out.println("A class");
    }
    }class B{ public void funcB(){
    A a = new A();
    String str = a.s;
    a.funcA();
    }
    }
      

  6.   

    我把文件名改为:B.java 了,可是结果还是一样啊。这个代码我是从书上抄来的,书上说没问题的啊,怎么回事?
      

  7.   

    我看到了,-d是指定存放类文件的位置。可我现在B.class已经在pack里了。
      

  8.   

    B.class不是在path,而是应该在classpath,一般情况下,应该在环境变量设置classpath=.;。
    Class A不对,应该是class A
      

  9.   

    将B类前 加public,文件名为B
      

  10.   

    把文件名改成B.java 与主类文件名一致!
      

  11.   

    JVM找不要入口了 class B 前面必须加个 public
      

  12.   

    把文件名改成B,同在类B前加public
      

  13.   

    我又这样编译了一次:javac -d pack DefaultTest.java
    然后运行:java -cp pack B
    还是显示:找不到Class B.
    真奇怪。