生成的JAR和EXE的奇怪行为

时间:2012-11-25 14:04:41

标签: java path nullpointerexception executable

我正在使用Jar2EXE生成在没有安装java的Windows上运行的EXE文件,在我的java桌面应用程序中我必须将文件上传到专用的FTP服务器,该文件位于运行Jar的同一目录中..以前我有一些探针来获取jar的当前路径,然后我用这一行解决了这个问题:

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

我将jar + File.doc设置在同一个Dir的任何位置及其工作。

当我生成我的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:任何帮助将不胜感激(我很抱歉我的英语)。

1 个答案:

答案 0 :(得分:2)

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

请参阅“概述”中的http://www.jar2exe.com/createdexe/integrate