关于package关键字的问题

ck_chuyun 2005-12-17 01:32:07

我在编译JAVA编程思想课本中的例子时发现一个问题,书中有一个程序位于
d:\launcelot\c07\music4\Music4.java
--------------------------------------------------------------------
package c07.music4;
import java.util.*;
import c07.music.*;

文件开头引入了d:\launcelot\c07\music\Note.java
--------------------------------------------------------------------
Note.java中开头的package是这样写的

package c07.music;

--------------------------------------------------------------------

编译的时候如果去掉两个文件中的package c07.music4 和package c07.music
两行语句一切正常

如果不去掉运行java Music4时就会出现
Exception in thread "main" java.lang.NoClassDefFoundError:Music4 (wrong name: c07/music4/Music4)
的提示,这是为什么?

还有,就算去掉了两个package语句,如果把Music4.java中import c07.music.*;
改成import c07.music.Note;编译时就直接告诉我找不到Note类????

我的环境变量配置是这样的
CLASSPATH = .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;d:\launcelotjava
JAVA_HOME = d:\jdk5
PATH = d:\jdk5\bin
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
water_mys 2005-12-17
  • 打赏
  • 举报
回复
要是当前目录已经在music4了呢?直接java Music4不行吗?
yuzl32 2005-12-17
  • 打赏
  • 举报
回复
java Music4 不对应该改为包全名:java c07.music4.Music4
believefym 2005-12-17
  • 打赏
  • 举报
回复
两个package语句?服了U.
带package的时候,编译和运行都要含表达package的部分.
javac c07/music4/Music4.java
java c07.music4.Music4
----------------
楼主是两个文件两个package,楼上的看错了吧,
另外,编译的时候package无所谓的,但是运行的时候就一定要package
北极猩猩 2005-12-17
  • 打赏
  • 举报
回复
在使用java命令运行程序时,必须输入类的权限定名,也就是
java c07.music04.Music4
ck_chuyun 2005-12-17
  • 打赏
  • 举报
回复
import c07.music.*;这样不就全包进去了吗?
liu_you 2005-12-17
  • 打赏
  • 举报
回复
两个package语句?服了U.
带package的时候,编译和运行都要含表达package的部分.
javac c07/music4/Music4.java
java c07.music4.Music4

62,612

社区成员

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

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