2012-11-25 18 views
1

我使用Jar2EXE來生成我的EXE文件,運行在未安裝java的窗口上,在我的java桌面應用程序中,我必須將文件上傳到專用FTP服務器,該文件在其中罐運行相同迪爾..以前我有一些發生問題的拿到罐子的電流路徑,然後我解決這個問題,這條線:奇怪的行爲與生成的JAR和EXE

pathToFile = new File(FtpUploder.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent()+"\\File.doc"; 

我設置了罐子+ FILE.DOC在在任何地方和工作都是一樣的。

當我產生我的exe文件的問題,前行拋出NullPointerException然後我包圍它蒙山的try/catch這樣的:

try{ 
     pathToFile = new File(FtpUploder.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent()+"\\File.doc"; 
     } 
     catch(NullPointerException e) 
     { 
      pathToFile = "C:\\File.doc"; 
      System.out.println("path is null ! lets see the new path : pathToFile ="+pathToFile); 
     } 

是文件被成功地從「C上傳了奇怪的問題:\ File.doc「,那麼爲什麼當我設置動態路徑時它不起作用? PS:任何幫助將不勝感激(對不起我的英語)。

+0

如果在此階段DOC文件已成爲[嵌入式資源](http://stackoverflow.com/tags/embedded-resource/info),則使用該簡單公式將會失敗。它可能需要通過URL從Jar中提取。此外,應用程序似乎很奇怪。正在上傳一個它明顯創建的'File.doc'。這是怎麼回事? –

回答

2

在生成的exe文件中,您只需調用System.getProperty("application.home")即可獲取生成的exe文件的路徑。

請參考http://www.jar2exe.com/createdexe/integrate,在「概述」中。

+0

這對我有幫助 –