我正在使用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:任何帮助将不胜感激(我很抱歉我的英语)。
答案 0 :(得分:2)
在生成的exe文件中,您只需调用System.getProperty("application.home")
即可获取生成的exe文件的路径。