怎样编译包中的类?

gahade 2006-11-15 06:59:26
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)

请问各位怎样编译包中的类呢?
...全文
495 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
J_fox 2006-11-20
  • 打赏
  • 举报
回复

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包里
e_ville 2006-11-16
  • 打赏
  • 举报
回复
D:\java>c:\jdk1.4\bin\javac p2/TestBa.java
这句就能通过

D:\java>c:\jdk1.4\bin\java p2/TestBa
这句就报错了.
错误信息:
================
运行的时候这样:
java p2.TestBa
netdata 2006-11-16
  • 打赏
  • 举报
回复
http://gceclub.sun.com.cn/yuanchuang/week-10/package.html

看看,你能否明白....
java p2.TestBa
gahade 2006-11-16
  • 打赏
  • 举报
回复
还是没有解决啊。高手们帮帮忙啊!
分不够可以加。
gahade 2006-11-16
  • 打赏
  • 举报
回复
单独的可以。
laitaogood 2006-11-15
  • 打赏
  • 举报
回复
我是新手
我是这样编译的
先在命令提示符里找到该java文件的所在的当前路径
然后用 -d 后面跟路径
就可以成功了
jayfantsy 2006-11-15
  • 打赏
  • 举报
回复
一个单独的能编译成功不?
gahade 2006-11-15
  • 打赏
  • 举报
回复
各位老大,好像和我这个问题不一样啊。
zhxjcooler 2006-11-15
  • 打赏
  • 举报
回复
如果文件路径为c:\p2\TestBa
java -CLASSPATH c:\p2 TestBa
或 java -CLASSPATH c: p2.TestBa
88324877 2006-11-15
  • 打赏
  • 举报
回复
不是你的问题你JVM虚拟机的BUG.
你看看这个以前的帖 讨论过这个问题。
http://community.csdn.net/Expert/topic/5138/5138471.xml?temp=.7552759
商科程序员 2006-11-15
  • 打赏
  • 举报
回复
是不是没在CLASSPATH中加当前路径呀?
gahade 2006-11-15
  • 打赏
  • 举报
回复
初学java,实在没搞懂.
gahade 2006-11-15
  • 打赏
  • 举报
回复
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)
gahade 2006-11-15
  • 打赏
  • 举报
回复
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)
J_fox 2006-11-15
  • 打赏
  • 举报
回复
你进入到p2 这个目录后直接运行就可以了
`……\p2>java TestBa
zhxjcooler 2006-11-15
  • 打赏
  • 举报
回复
把p2/TestBa改成p2 testBa或 p2.TestBa 试一试


62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧