2014-07-11 48 views
0

我試圖從普通的eclipse打開它工作正常,但是當將相同的文件導出到jar時出現錯誤。 任何人都可以幫忙嗎?試圖在java工具包中使用鏈接來打開Openoffice文件

public void mouseClicked(MouseEvent e) { 
      Process process; 
      try { 
       String resourceLocation = MainPanel.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 
       resourceLocation += "/com/microsoftplatformready/resources/images/endUserLicenseAgreement.docx"; 
       process = Runtime.getRuntime().exec("soffice -reader "+resourceLocation); 
       process.waitFor(); 
       process.destroy(); 
      } catch (Exception e1) { 
       e1.printStackTrace(); 
      } 
     } 

請幫

感謝

+0

你得到的錯誤究竟是什麼? – Pr0gr4mm3r

+0

我無法打開jar文件中的文件「Error:General input output error while access」 – user1182542

+0

請參閱http://stackoverflow.com/questions/24654597/instancing-a-java-io-file-to-從類路徑/ 24654846讀取資源#24654846 - 我的解決方案:首先用jar中的資源創建一個tempfile,然後將其提供給OpenOffice。 –

回答

0

由於喬普埃根的評論已經說了,首先創建一個新的臨時文件和您的實際文件拷貝到臨時文件,並打開這個來代替。

原因很簡單,Openoffice無法讀取檔案中存儲的文件。

Path temp = Files.createTempFile("prefix", "suffix.ext"); 
Files.copy(getClass().getResourceAsStream(resourceLocation), temp); 
process = Runtime.getRuntime().exec("soffice -reader "+ temp.toAbsolutePath().toString())