当前页面: 开发资料首页 → J2SE 专题 → 怎样编译包中的类?
怎样编译包中的类?
摘要: 怎样编译包中的类?
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)
请问各位怎样编译包中的类呢?
把p2/TestBa改成p2 testBa或 p2.TestBa 试一试
你进入到p2 这个目录后直接运行就可以了
`……/p2>java TestBa
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)
zhxjcooler()
把p2/TestBa改成p2 testBa或 p2.TestBa 试一试
------------------------------------------------------
D:/java>c:/jdk1.4/bin/java p2 TestBa
报错:Exception in thread "main" java.lang.NoClassDefFoundError: p2
D:/java>c:/jdk1.4/bin/java p2.TestBa
报错:Exception in thread "main" java.lang.NoClassDefFoundError: p2/TestBa (wrong name
: TestBa)
初学java,实在没搞懂.
是不是没在CLASSPATH中加当前路径呀?
不是你的问题你JVM虚拟机的BUG.
你看看这个以前的帖 讨论过这个问题。
http://community.csdn.net/Expert/topic/5138/5138471.xml?temp=.7552759
如果文件路径为c:/p2/TestBa
java -CLASSPATH c:/p2 TestBa
或 java -CLASSPATH c: p2.TestBa
各位老大,好像和我这个问题不一样啊。
一个单独的能编译成功不?
我是新手
我是这样编译的
先在命令提示符里找到该java文件的所在的当前路径
然后用 -d 后面跟路径
就可以成功了
D:/java>c:/jdk1.4/bin/javac p2/TestBa.java
这句就能通过
D:/java>c:/jdk1.4/bin/java p2/TestBa
这句就报错了.
错误信息:
================
运行的时候这样:
java p2.TestBa
单独的可以。
还是没有解决啊。高手们帮帮忙啊!
分不够可以加。
http://gceclub.sun.com.cn/yuanchuang/week-10/package.html
看看,你能否明白....
java p2.TestBa
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包里