我在编译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
带package的时候,编译和运行都要含表达package的部分.
javac c07/music4/Music4.java
java c07.music4.Music4
java c07.music04.Music4
带package的时候,编译和运行都要含表达package的部分.
javac c07/music4/Music4.java
java c07.music4.Music4
----------------
楼主是两个文件两个package,楼上的看错了吧,
另外,编译的时候package无所谓的,但是运行的时候就一定要package