我正在使用 Jar2EXE 生成在没有安装 java 的 Windows 上运行的 EXE 文件,在我的 java 桌面应用程序中,我必须将文件上传到专用的 FTP 服务器,该文件位于运行 Jar 的同一个目录中。以前我有一些问题来获取 jar 的当前路径,然后我用这一行解决了这个问题:
pathToFile = new File(FtpUploder.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent()+"\\File.doc";
我将 jar + 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:任何帮助将不胜感激(对不起我的英语)。