2013-05-03 53 views
2

我得到一個異常:如何導入公地io.jar JSP/JAVA

Cannot find symbol: FileUploadException; 

我有一段代碼,它使用

FileUploadException 

需要導入庫是:

org.apache.commons.fileupload.FileUploadException 

到我的項目的路徑是:

D:\Projects\website 

在項目文件夾中我有它的每個文件夾中:

Tomcat, Derby, Website 

我抄:

commons-fileupload.jar and commons-io.jar 

到這兩個:

Tomcat/lib and Website/Web-INF/lib 

------ ---------我試過這個--------------

剛剛導入庫自身

import org.apache.commons.fileupload.FileUploadException; 

在構建添加的罐子到類路徑:

javac -cp .;D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar com/otrocol/app/*.java 

將它們添加到環境變量CLASSPATH

D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar 

我也嘗試過添加我的.java文件所在的罐子@Scot Ship建議

----提到---

我沒有使用任何IDE

的代碼包含多個無法識別的符號,但我試圖解決一次一個

第一次使用apache,tomcat,jsp ..請溫和

+0

我本來期望'網站/ WEB-INF/lib'。只需嘗試一次IDE,NetBeans就簡單而且簡單。 – 2013-05-03 23:18:10

+0

這是簡單的方法。我可以導入其他軟件包,比如derby.jar或servlet-api.jar,並且它們完美地工作。「只是這個讓我頭疼的事情。也不能保證在花費我們的配置eclipse後,我想要的方式,甚至可以工作。 – 2013-05-03 23:20:43

回答

0

看了這個http://commons.apache.org/proper/commons-fileupload/faq.html#class-not-found。可能你有fileupload jar,但是你的classpath也需要commons-io.jar。

+0

如果你看過我的問題的文字,你會看到我還添加了公共-IO的路徑 – 2013-05-03 23:25:33

+1

我想你應該嘗試把罐子在同一目錄作爲您的.java文件開始。通常javac將當前目錄視爲類路徑的開始。如果這不起作用,您可能會損壞.jar文件或者.jar文件存在其他問題。 – 2013-05-03 23:31:32

+1

來自的更多信息:默認的類路徑是當前目錄。設置CLASSPATH變量或使用-classpath命令行選項將覆蓋該默認值,因此如果要將當前目錄包含在搜索路徑中,則必須包含「。」。在新的設置中。 – 2013-05-03 23:34:15

1

弗拉德,Web容器會自動尋找JAR文件內

/WEB-INF/lib 

即使沒有任何開發人員的干預。請注意,它全部是大寫的WEB-INF。只要你的JAR在那裏,它就會在你的Web應用程序的類路徑中。

嘗試在你的servlet或JSP的一個顯示此:

System.getProperty("java.class.path") 

,你會得到一個什麼樣的類和JAR實際上加載的更好的視野。

更新:審覈您的問題後,它將顯示你在編譯的文件開始與面臨的問題和你外面做的IDE。

注意到,當你使用的javac -cp這樣的:

javac -cp .;D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar com/otrocol/app/*.java 

無論價值,你在CLASSPATH環境變量已設置變得忽略不計。

絕對確保類FileUploadException確實裏面你想導入的JAR文件中的一個:你可以直接使用解檔工具查看JAR。另外,將com/otrocol/app/*。java更改爲com \ otrocol \ app * .java - 您應該使用系統分隔符(而不是這可能會影響您的問題)。

創建相同的位置,你編譯文件一個簡單的HelloWorld,添加SystemOut上面提到的,並編譯它,你正在做的有關文件的方式。