2010-12-16 75 views
2

我在開發我的程序中有一門課。這是用於閱讀和處理CSV文件的OpenCSV類。即使是進口,也找不到類別

它被導入到我在Eclipse中的classpath中,也被import au.com.bytecode.opencsv.*;導入。 Eclipse沒有顯示任何錯誤,它在這個Class.forName("au.com.bytecode.opencsv.CSVReader", false, null);

失敗,我只是無法弄清楚爲什麼它在這條線上失敗。我甚至嘗試將所有源代碼導入到我的項目中,但它始終無法通過ClassNotFound錯誤。這是一個運行在apache tomcat 6服務器上的jsp應用程序。

+0

您是否也通過eclipse啓動應用程序? – aioobe 2010-12-16 14:55:17

+0

我忘了提及這一個...這是一個運行在tomcat上的jsp應用程序 – Gabriel 2010-12-16 15:00:15

+0

更新了我的答案。確保opencsv庫位於您的Web應用程序的類路徑中。 – aioobe 2010-12-16 15:04:03

回答

3

您需要完全限定類名。嘗試

Class.forName("au.com.bytecode.opencsv.CSVReader", false, null); 

Class.forName文檔:

鑑於一類或接口的完全限定域名(通過的getName返回的格式相同),該方法嘗試定位,加載,並鏈接類或接口。

import語句僅在編譯時使用。 (字節碼中沒有import的跟蹤。)因此,要求加載"CSVReader"的類加載器無法知道您正在討論哪個包(實際上只是在默認包中查找該類)。


關於你提到的更新...

您需要確保該opencsv庫在你的classpath Web的應用程序。在編譯過程中它不夠用...

+0

對不起...忘了更新我的描述...我在發佈之前試過這個,並且它總是失敗。 – Gabriel 2010-12-16 14:53:17

+0

它在我的類路徑中,它也與應用程序一起導出。 – Gabriel 2010-12-16 15:12:42

+0

重新檢查您的拼寫,並確保您可以在運行時使用該庫。如果它在你的班級路徑上並且你有足夠的權限,它應該可以工作。 – aioobe 2010-12-16 15:15:14

2

在部署的.war文件的WEB-INF/lib或WEB-INF /類中是否需要類?

+0

我不輸出它呢...我運行從日食的Apache服務器誰應該這樣做,當我運行服務器----我試圖出口它,它不在那裏......這是奇怪的 – Gabriel 2010-12-16 15:15:10

1

嘗試將CS​​V jar文件src的文件夾,然後執行以下操作: 你的項目 - >右鍵 - >屬性 - > Java構建路徑 - >庫 - >添加罐 - > yourjar.jar

如果您已經在src文件夾中有csv jar文件,請嘗試在主項目文件夾中創建一個新文件夾「lib」,並將此csv jar文件添加到該文件夾​​中,然後按照上述步驟操作。

相關問題