2013-11-04 73 views
0

我正在制作一个软件,我必须显示pdf文件。我已经将pdf文件存储在我的项目文件夹中。该软件运行得很好。从jar文件夹中打开pdf文件时出错

但是,当我清理并建立项目,然后我运行我的jar exe文件的PDF文件无法打开。

经过一些实验后,我将我的pdf文件包含在SRC文件夹中,然后清理并构建项目。我发现的差异是,现在jar文件的大小(它等于所有pdf文件的总和),我认为这次它会工作。但它没有工作。

然后经过多次实验,我将所有文件都包含在Dist文件夹中。

然后jar文件可以打开pdf文件:),我很高兴,但不满意,因为我只需要创建一个jar文件,并看到项目文件夹中的所有pdf文件与一个jar文件看起来真的awkard和毫无意义的是,无论如何,我可以使用只有jar文件打开PDF文件,而无需复制存储我的jar文件的文件夹中的pdf文件。这是我用来打开名为“aleemullah resume”的文件的代码。

try{ 
    Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "aleemullah resume.pdf"); 
} 
catch (Exception e) { 
     JOptionPane.showMessageDialog(null, "Error"); 
} 

回答

1

看起来好像你正在阅读从你当前的工作目录PDF文件(也就是你的程序从启动文件夹)。通过这种逻辑,您应该能够打开存储在任何地方的PDF,方法是输入完整路径,而不仅仅是文件名。例如:

String filePath = "C:\Users\you\Desktop\aleemullah resume.pdf" 
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + filePath); 

更改filePath变量,无论你是存储PDF文件。

如果您希望用户在运行时选择PDF,也可以考虑使用JFileChooser来选择文件。查看this example如何从Java打开对话框来选择PDF文件并检索其路径。