2010-12-14 99 views
0

我試圖獲取打包爲jar文件中資源的文檔的文件路徑,以便我可以在swing應用程序中顯示它。我從eclipse運行它的方式現在有效,但如果將它導出到可運行的jar文件,我無法訪問打包在jar文件中的文檔。當它在jar文件中時,如何獲得文檔的文件路徑?訪問打包在jar文件中的文檔

這裏是代碼行展示如何,我試圖訪問該文檔:

File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath()); 
+0

您是否檢查過'document.pdf'是否在該位置的jar內? – khachik 2010-12-14 18:27:39

+0

是的。我修改爲代碼使用URL而不是文件,如果現在工作。 – MBU 2010-12-14 18:58:29

回答

3

唯一一種存在於一個JAR文件裏面的東西「文件路徑」是相對於根的路徑的JAR。但在你的情況下,它似乎已經知道它(它是「/resources/documents/document.pdf」)。 JAR文件中的文件沒有可用於直接訪問它們的路徑,因爲它們不存在於真實文件系統中。您需要使用getResource()或getResourceAsStream()來訪問它們。我現在不記得哪些類用於Swing中的圖像,但仔細查看這些類 - 它們應該有重載的方法,它們接受InputStream或URL之類的東西,而不是文件路徑。

+0

我用getResourceAsStream()。謝謝! – MBU 2010-12-14 19:32:50