package p2;
public class Ba{
String a;
double b;
public Ba(String aa,double bb){
a=aa;
b=bb;
}
public void show(){
if (b<0)
System.out.println("小于0!");
System.out.println(a);
}
}
import p2.*;
public class TestBa{
public static void main(String args[]){
Ba ba = new Ba("test",6);
ba.show();
}
}D:\java>c:\jdk1.4\bin\javac p2/TestBa.java
这句就能通过D:\java>c:\jdk1.4\bin\java p2/TestBa
这句就报错了.
错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: p2/TestBa (wrong name
: TestBa)请问各位怎样编译包中的类呢?

解决方案 »

  1.   

    把p2/TestBa改成p2 testBa或 p2.TestBa 试一试
      

  2.   

    你进入到p2 这个目录后直接运行就可以了
    `……\p2>java TestBa
      

  3.   

    J_fox()
    你进入到p2 这个目录后直接运行就可以了
    `……\p2>java TestBa
    -------------------------------------------------------------------
    D:\java\p2>c:\jdk1.4\bin\java TestBa这样也会报错
    Exception in thread "main" java.lang.NoClassDefFoundError: p2/Ba
            at TestBa.main(TestBa.java:4)
      

  4.   

    zhxjcooler() 
    把p2/TestBa改成p2 testBa或 p2.TestBa 试一试
    ------------------------------------------------------
    D:\java>c:\jdk1.4\bin\java p2 TestBa
    报错:Exception in thread "main" java.lang.NoClassDefFoundError: p2D:\java>c:\jdk1.4\bin\java p2.TestBa
    报错:Exception in thread "main" java.lang.NoClassDefFoundError: p2/TestBa (wrong name
    : TestBa)
      

  5.   

    是不是没在CLASSPATH中加当前路径呀?
      

  6.   

    不是你的问题你JVM虚拟机的BUG.
    你看看这个以前的帖  讨论过这个问题。
    http://community.csdn.net/Expert/topic/5138/5138471.xml?temp=.7552759
      

  7.   

    如果文件路径为c:\p2\TestBa
    java -CLASSPATH c:\p2 TestBa
    或 java -CLASSPATH c: p2.TestBa
      

  8.   

    我是新手
    我是这样编译的
    先在命令提示符里找到该java文件的所在的当前路径
    然后用 -d 后面跟路径
    就可以成功了
      

  9.   

    D:\java>c:\jdk1.4\bin\javac p2/TestBa.java
    这句就能通过D:\java>c:\jdk1.4\bin\java p2/TestBa
    这句就报错了.
    错误信息:
    ================
    运行的时候这样:
    java p2.TestBa
      

  10.   

    http://gceclub.sun.com.cn/yuanchuang/week-10/package.html看看,你能否明白....
    java p2.TestBa
      

  11.   


    package p2;
    public class Ba{
    String a;
    double b;
    public Ba(String aa,double bb){
    a=aa;
    b=bb;
    }
    public void show(){
    if (b<0)
    System.out.println("小于0!");
    System.out.println(a);
    }
    }
    import p2.*;
    public class TestBa{
    public static void main(String args[]){
    Ba ba = new Ba("test",6);
    ba.show();
    }
    }D:\java>c:\jdk1.4\bin\javac p2/TestBa.java
    这句就能通过D:\java>c:\jdk1.4\bin\java p2/TestBa
    这句就报错了.
    错误信息:
    Exception in thread "main" java.lang.NoClassDefFoundError: p2/TestBa (wrong name
    : TestBa)请问各位怎样编译包中的类呢?
    ==============
    ==============
    你的两个class分别是放在两个文件里的吧!
    你先javac -d 第一个文件的路径(就是Ba那个)
    然后再编译你后面的那个,
    你要看清你后面的那个不是在package p2里面的
    所以这所以运行不了,是因为路径错了,还有就是我将我第二个class 里的import p2.*;
    改成了import p2.Ba;(因为没有改这前我这边编译不了)
    就是样,我在我这里运行成功的!++***注意,TestBa不在P2包里