2013-11-04 81 views
0

我正在製作一個軟件,我必須顯示pdf文件。我已經將pdf文件存儲在我的項目文件夾中。該軟件運行得很好。從jar文件夾中打開pdf文件時出錯

但是,當我清理並建立項目,然後我運行我的jar exe文件的PDF文件無法打開。

經過一些實驗後,我將我的pdf文件包含在SRC文件夾中,然後清理並構建項目。我發現的差異是,現在jar文件的大小(它等於所有pdf文件的總和),我認爲這次它會工作。但它沒有工作。

然後經過多次實驗,我將所有文件都包含在Dist文件夾中。

然後jar文件可以打開pdf文件:),我很高興,但不滿意,因爲我只需要創建一個jar文件,並看到項目文件夾中的所有pdf文件與一個jar文件看起來真的awkard和毫無意義的是,無論如何,我可以使用只有jar文件打開PDF文件,而無需複製存儲我的jar文件的文件夾中的pdf文件。這是我用來打開名爲「aleemullah resume」的文件的代碼。

try{ 
    Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "aleemullah resume.pdf"); 
} 
catch (Exception e) { 
     JOptionPane.showMessageDialog(null, "Error"); 
} 

回答

1

看起來好像你正在閱讀從你當前的工作目錄PDF文件(也就是你的程序從啓動文件夾)。通過這種邏輯,您應該能夠打開存儲在任何地方的PDF,方法是輸入完整路徑,而不僅僅是文件名。例如:

String filePath = "C:\Users\you\Desktop\aleemullah resume.pdf" 
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + filePath); 

更改filePath變量,無論你是存儲PDF文件。

如果您希望用戶在運行時選擇PDF,也可以考慮使用JFileChooser來選擇文件。查看this example如何從Java打開對話框來選擇PDF文件並檢索其路徑。