为什么我得到Class not found例外

时间:2012-05-14 12:52:18

标签: java classpath classnotfoundexception

我正在使用DeferredTextImpl类,而eclipse似乎没有抱怨它,但是当我运行我的项目时,我得到运行时异常.... Class not found exception for DeferredTextImpl ..

当我搜索类文件时,我在rt.jar中找到了它,它当然应该在类路径上。我还检查了项目properties->Java build path中的构建路径,并且可以在最底部看到JRE系统库。当我扩展它。我可以看到rt.jar。这意味着它在课程路径上,对吗?

为什么我收到此错误?

5 个答案:

答案 0 :(得分:3)

运行代码时,Eclipse中的构建路径类路径之间存在差异。构建路径用于编译代码。类路径是应用程序运行时的。

构建路径配置为 Project - >属性 - > Java构建路径

使用 Run - >配置类路径运行配置 - >类路径

在您的情况下,如果运行配置下的 JRE 选项卡指向与构建路径中相同的JRE,则还应检查(如其他人提到的那样)。< / p>

答案 1 :(得分:1)

检查运行时的Xerces jar版本与编译时类的版本。确保在运行时有一个Xerces2 jar。我怀疑rt.jar中的类与您的应用程序正在寻找的类相同。

答案 2 :(得分:1)

此类是特定DOM实现(Apache Xerces)的一部分。它不是公共Java API的一部分,如果你确实在一个JVM的运行时类库中找到它,这并不能保证它会存在于其他JVM的运行时类库中。如果需要显式使用Xerces,则需要在运行时类路径上显式包含Xerces库。

答案 3 :(得分:1)

您可以在运行代码时通过使用-jar选项显式添加rt.jar来尝试运行代码吗?如果这样可行则意味着eclipse中的rt.jar不在类路径上。

答案 4 :(得分:0)

右键点击项目&gt; java build path&gt;图书馆 删除JRE并添加指向JDK文件夹的库,在我的例子中是C:\ Program Files \ Java \ jdk1.7.0_55。 但在此之前,使用java安装JRE也是如此。 Windows&gt; java&gt;安装了JRE。 希望这会有所帮助