JDK之NoClassDefFoundError解决对策初步(0分)

  • 主题发起人 主题发起人 HORNEY
  • 开始时间 开始时间
H

HORNEY

Unregistered / Unconfirmed
GUEST, unregistred user!
NoClassDefFoundError是JDK的一个比较头疼的障碍,起因未知。经过研究,先给出初步的对策:
解决方法是加路径,下面的这些路径是我在执行一个JBuilder8的图形界面程序时用替换Javaw.exe骗过
JBuilder8执行器的方法探测出来的。
D:/PJXS/AppOne/classes;
D:/JBuilder8/lib/jbcl.jar
D:/JBuilder8/lib/dx.jar
D:/JBuilder8/lib/beandt.jar
D:/JBuilder8/jdk1.4/jre/lib/rt.jar
D:/JBuilder8/jdk1.4/jre/lib/i18n.jar
D:/JBuilder8/jdk1.4/jre/lib/sunrsasign.jar
D:/JBuilder8/jdk1.4/jre/lib/jsse.jar
D:/JBuilder8/jdk1.4/jre/lib/jce.jar
D:/JBuilder8/jdk1.4/jre/lib/charsets.jar;
D:/JBuilder8/jdk1.4/jre/classes;
D:/JBuilder8/jdk1.4/lib/tools.jar;
其中第一行是执行程序的类的所在位置,后面的都是图形界面所需要的东东。可以肯定的是如果你要
执行一个类的话的,这第一行程序位置绝对是少不了的。
也就是说,一般JAVA2教程上说的用-classpath参数的方法是正确的。
当大家看到Def这三个字母时,很容易把它认作是Default的缩写,实际上应该是Definition。JAVA2实
际上说得很明白,就是有关于它要使用的类找不到,要你给出位置。
当然,如果要解决这个问题的话,就是要给java或是javaw作一个Shell,实现的方法有很多,无论用程
序还是用带参数批处理(我用的是批处理)都可以解决,这一点大家见仁见智,我就不多说了。
不过,凭我的直觉来看,JDK或是JRE肯定有工具可以提供设置路径之用,作为一个成熟的产品,它不可
能让每个用户都去写批处理,只是我还没有发觉这一个工具。此外,在执行JRE的时候JVM就不需要那么
多的参数即可执行,这一点也让我感到很困惑,尚需研究。
 
如果你对java的classload的运行机制比较熟悉的话,我想就不会有太大的问题了
 
后退
顶部