2014-01-10 26 views
-1

我是新來的Java和Netbeans IDE用於我的項目。我需要閱讀和顯示CSV文件,所以我使用opencsv庫。它在我的電腦上工作正常,但jar文件無法在不同的機器上加載任何csv文件。可能是什麼原因?我該怎麼做才能解決這個問題?閱讀csv文件jar文件無法在另一臺機器上加載csv文件

try{ 

    CSVReader reader = new CSVReader(new FileReader(dataFile));  
    String [] nextLine; 
    row = 0; 
    ArrayList<String[]> ls = new ArrayList<>(); 

    while ((nextLine = reader.readNext()) != null) { 
      row++; 
      ls.add(nextLine);    
    }  
    col=ls.get(0).length; 
    String[] tempHeader=new String[col];    
    for(int i=0;i<col;i++) 
    tempHeader[i]=(String)("ATT"+(i+1)); 
    fileData=new String[row][col]; 
    for(int i=0;i<ls.size();i++) 
    fileData[i]=ls.get(i); 
    DefaultTableModel dm = new DefaultTableModel();  
    dm.setDataVector(fileData,tempHeader); 
    previewTable.setModel(dm); 
    } catch(IOException e){} 

代碼這是工作在我的機器上。但我發送給我的朋友的jar文件無法顯示該文件。

+0

請打印錯誤堆棧! – Rugal

+0

我們需要一些代碼來看看你在做什麼,以幫助。 – mikea

+0

你得到了什麼錯誤?如果它是FileNotFoundException,那麼你的路徑可能有問題。 –

回答

0

查看錯誤的最簡單方法是添加一些調試信息。

首先,您正在捕獲IOException,但在catch塊中什麼也不做。通過這個實現,如果在朋友系統上讀取文件時(即IOException被拋出)時出現問題,則不會寫入錯誤輸出。你只是拋棄異常。至少在catch塊中添加一些e.printStackTrace()以將堆棧跟蹤輸出到控制檯。然後,你可以在while循環中添加一些(臨時的)調試信息,例如,的System.out.println(nextLine)。這會輸出從CVV文件中讀取的每一行。

(一個更好的辦法是使用一個日誌庫,像Log4J的,但以上建議應該這樣做你的情況)

最後,確保你的朋友開始在命令行的jar文件(而不是由雙擊jar文件!)。錯誤堆棧跟蹤和調試信息應顯示在命令窗口中。