在Solaris 10上,我使用的是JDK 1.5.0_22,并且当我在JDK/bin目录中运行任何JDK可执行文件(javac
,native2ascii
,javadoc
等) tools.jar
跑,我得到这个错误(有或没有参数运行):javac(和其他jdk可执行文件)产生NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main
JRE可执行程序不需要tools.jar
做工精细(Java中,密钥工具等)的bin目录。
是的,tools.jar
位于JDK/lib目录中,权限正常且没有损坏 - 我可以查看tools.jar
的内容并提取它们。
我试过设置JAVA_HOME
,并且将JDK/bin目录添加到PATH中 - 设置/取消设置这些环境变量没有任何区别。我仍然得到同样的错误。
这是我发现的唯一的事情,做摆脱NoClassDefFoundError
,并允许JDK/bin中的可执行运行(以下cmd是从JDK/bin目录下运行):
./native2ascii -J-Xbootclasspath/a:../lib/tools.jar
所以,如果我将-J-Xbootclasspath/a:../lib/tools.jar
添加到任何JDK/bin可执行文件,如javac
,javadoc
,native2ascii
,它们运行。否则,他们不会。
有关如何解决的任何想法?所有的JDK/bin可执行文件都可以在我的其他Solaris 10系统上正常运行,并且它们都没有任何设置或PATH上的JDK/bin。
我从来没有将JAVA_HOME设置为bin文件夹。我有其他的Solaris系统根本没有设置JAVA_HOME,而javac,native2ascii等等都可以工作。 – JavaHoss 2010-02-11 18:57:55