当前位置: 技术问答>java相关
Exception in thread "main" java.lang.NoClassDefFoundError: mypag/Time 哪位大哥帮帮小弟,这个问题我搞了一个下午了!!!SOS
来源: 互联网 发布时间:2017-03-26
本文导语: 我用的是 jdk1.2.1 , 安装目录是缺省安装,即 c:jdk1.2.1 。我用来存放 Java 程序文件的目录是: d:java 我自己定义了一个包,想用来被别的类用 import 调入。实现类的复用。 按书上说的,在一个类定义文件里,我...
我用的是 jdk1.2.1 , 安装目录是缺省安装,即 c:jdk1.2.1 。我用来存放 Java 程序文件的目录是: d:java
我自己定义了一个包,想用来被别的类用 import 调入。实现类的复用。
按书上说的,在一个类定义文件里,我加入 package mypag; 语句。比如这个类叫做 Time。
写好后,我用 D:java>javac -d c:jdk1.2.1jreclasses Time.java 语句来进行编译。这样做按书上所说是把编译好的字节码(.class 文件)放入 c:jdk1.2.1jreclasses 目录中。书上的解释是:Java 2 的编译器和解释器都知道在 jdk1.2.1jre 这个目录下的 classes 目录中保存的是程序员自定义的类文件。当然,缺省情况下,jdk1.2.1jre 目录下并没有 classes 目录,所以要自己建立。我照做了。
这样做完之后,编译是成功的,且在 c:jdk1.2.1jreclasses 目录下,编译器自动创建了一个 mypag 子目录,Time.class 文件就存放在里面,一切如书上所说,很顺利!
之后,我有写了另一个类,这个类用 import mypag.Time; 语句把上面编译好的 Time.class 文件导入。因为在这个类中,我有 Time t = new Time(); 的语句。不妨叫这个类为 TimeTest。
写好后,我用 D:java>javac TimeTest.java 进行编译,OK,没有任何问题,编译通过!顺利!
问题来了!!!
当我在键盘上敲入 D:java>java TimeTest 时,解释器却抛出一个例外:Exception in thread "main" java.lang.NoClassDefFoundError: mypag/Time
我实在不知道是怎么回事,书上也没有讲,这个问题我搞了一下午了,哪位大哥帮帮小弟我,感激不尽!!!
我自己定义了一个包,想用来被别的类用 import 调入。实现类的复用。
按书上说的,在一个类定义文件里,我加入 package mypag; 语句。比如这个类叫做 Time。
写好后,我用 D:java>javac -d c:jdk1.2.1jreclasses Time.java 语句来进行编译。这样做按书上所说是把编译好的字节码(.class 文件)放入 c:jdk1.2.1jreclasses 目录中。书上的解释是:Java 2 的编译器和解释器都知道在 jdk1.2.1jre 这个目录下的 classes 目录中保存的是程序员自定义的类文件。当然,缺省情况下,jdk1.2.1jre 目录下并没有 classes 目录,所以要自己建立。我照做了。
这样做完之后,编译是成功的,且在 c:jdk1.2.1jreclasses 目录下,编译器自动创建了一个 mypag 子目录,Time.class 文件就存放在里面,一切如书上所说,很顺利!
之后,我有写了另一个类,这个类用 import mypag.Time; 语句把上面编译好的 Time.class 文件导入。因为在这个类中,我有 Time t = new Time(); 的语句。不妨叫这个类为 TimeTest。
写好后,我用 D:java>javac TimeTest.java 进行编译,OK,没有任何问题,编译通过!顺利!
问题来了!!!
当我在键盘上敲入 D:java>java TimeTest 时,解释器却抛出一个例外:Exception in thread "main" java.lang.NoClassDefFoundError: mypag/Time
我实在不知道是怎么回事,书上也没有讲,这个问题我搞了一下午了,哪位大哥帮帮小弟我,感激不尽!!!
|
使用下列命令行试试
D:java>java -classpath %CLASSPATH%;c:jdk1.2.1jreclasses;. TimeTest
D:java>java -classpath %CLASSPATH%;c:jdk1.2.1jreclasses;. TimeTest