1

我正在使用 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:任何帮助将不胜感激(对不起我的英语)。

4

1 回答 1

2

在生成的 exe 文件中,您可以简单地调用System.getProperty("application.home")来获取生成的 exe 文件的路径。

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

于 2012-12-13T14:13:47.363 回答