我目前使用Eclipse Indigo並且有兩個動態Web項目:項目A和項目B.即使jar在/ lib中,「java.lang.ClassNotFoundException:org.apache.commons.io.FileUtils」也被拋出
項目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會拋出此異常,不管它是否在其自己的WEB-INF\lib
文件夾中有commons-io-2.4.jar
。
我檢查了一下,Eclipse確實正在部署jar包。
有沒有辦法解決這個問題?
編輯:我目前使用Eclipse Indigo,而不是Juno。
編輯2:我做了一個新的Java項目,只有一個主行:
FileUtil.createAndWriteToFile(new File("./test.txt"), "test-data");
以及項目B作爲構建路徑上形成需要的項目。沒有例外被拋出。
項目A從項目B調用幾個方法沒有問題。這只是因爲它使用FileUtils而存在問題。這兩個項目都在Eclipse中打開。 – Ivan
我剛剛閱讀你的第二個編輯。當我回家時我將不得不看這個。希望有人可以早日回答你。 – eddiecubed
但是可以在項目B中的任何* jar *項目中調用一個調用方法嗎? commons-io-2.4.jar在運行時部署到A的WEB-INF/lib文件夾中? – nitind