2014-01-08 85 views
-1

問:什麼是最簡單的java代碼行來找出我的Java程序試圖搜索文件的位置?java.io.FileNotFoundException:文件'smallPDF_463KB.pdf'不存在

假設:「smallPDF_463KB.pdf」在類路徑中。 (這個假設可能是真的或假的。)

我收到上面的異常,因爲它明確指出我的java主程序無法找到給定文件smallPDF_463KB.pdf。 即使我認爲「smallPDF_463KB.pdf」位於類路徑中,也會發生此異常。

什麼是Java代碼行/行(例如「user.dir」或任何其他java屬性),我可以插入到我的主程序中,然後我可以計算出我的Java主程序的位置試圖搜索這個文件。所以,我可以準確地斷言出了什麼問題。

異常詳細信息:

java.io.FileNotFoundException: File 'smallPDF_463KB.pdf' does not exist 
    at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:137) 
    at org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java:1135) 
    at main.CmisClient.createDocument(CmisClient.java:91) 
    at main.CmisClient.main(CmisClient.java:35) 
Exception in thread "main" java.lang.NullPointerException 
    at java.io.ByteArrayInputStream.<init>(Unknown Source) 
    at main.CmisClient.createDocument(CmisClient.java:95) 
    at main.CmisClient.main(CmisClient.java:35) 
+0

可以顯示代碼,將路徑傳遞給任何文件輸入對象 –

+0

Java不會搜索文件的類路徑;它看起來在當前目錄中。 – jalynn2

+0

當前哪個目錄? Main程序運行的目錄或調用File路徑的類文件包的目錄? –

回答

0

從您的路徑創建一個文件,然後打印該文件的絕對路徑: 即

File file = new File("<your path>"); 
System.out.println(file.getCanonicalPath()); 
+0

中得到它這是正確的答案,因爲這告訴我們Java程序試圖找到文件的位置。 而我接受它和通用的解決方案。 因此,Java開發人員不需要總是將文件放在「項目根目錄」中,就像「peeskillet」指出的那樣。 取而代之,將@ user1631616給我們的代碼行放在該位置,並找出java程序試圖搜索文件並應用適當診斷的實際運行時間。 –

0

呃,坦克先生..文件路徑必須是相對或絕對的。不管它是否在類路徑上都沒關係。 。

1

新的文件(「」)getAbsoluteFile(),會給你用它在搜索文件夾中的字符串

+0

這也是我的問題的正確答案,我測試了它,並且它打印了Java程序試圖搜索文件的路徑。 感謝您嘗試我的問題。 –

+0

我從webapp掃描文件時遇到同樣的問題。它不會從工作區目錄中掃描它。它從Eclipse webapp – 2015-06-08 17:50:32

相關問題