即使jar在/ lib中,也会抛出“java.lang.ClassNotFoundException:org.apache.commons.io.FileUtils”

时间:2013-08-19 22:05:50

标签: java eclipse apache-commons

我目前正在使用Eclipse Indigo并拥有两个动态Web项目:项目A和项目B.

项目A将项目B作为构建路径上的必需项目,并在Properties -> Java Build Path -> Order and Export上打勾。

然后,我在项目A中有一个方法,它调用项目B中具有以下行的方法:

 FileUtils.writeStringToFile(file, data);

此行抛出以下异常:

java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at my.package.projectB.Class.createAndWriteToFile(FileUtil.java:62)
    at my.package.projectA.Class.saveCurrentDialog(UIResponseStrategy.java:99)
    ...

项目B在commons-io-2.4.jar中有WEB-INF\lib,当项目B运行并使用Commons IO jar中的方法调用方法时,不会抛出任何异常。

项目A抛出此异常,无论其commons-io-2.4.jar文件夹中是否有WEB-INF\lib

我已经检查过,Eclipse确实正在用项目部署jar。

有没有办法解决这个问题?

编辑:我目前正在使用Eclipse Indigo,而不是Juno。

编辑2:我制作了一个新的Java项目,它只有一个主线和一行:

FileUtil.createAndWriteToFile(new File("./test.txt"), "test-data");

以及项目B作为构建路径上的必需项目。没有例外。

1 个答案:

答案 0 :(得分:0)

您可以调用项目A中项目B的任何方法吗?

尝试运行时,两个项目文件夹是否都打开?我在调试android项目时在eclipse中使用google maps api时遇到了这个问题。