打开PDF只适用于netbeans

时间:2011-12-12 08:41:41

标签: java pdf file-io runtime exec

我编写了一个创建PDF文档的程序。创建后,必须打开PDF,以便打印。

我有以下代码,但它只有在我从netbeans启动时才有效。谁能给我一些指示?

 public void openPDF()
    {
        try {
            System.out.println("Opening PDF");
            File file = new File(pdfPath+pdfName);
            String absolutePDFpath = file.getAbsolutePath().replace(""+(char)92,""+(char)92+(char)9);
            System.out.println("Path = "+absolutePDFpath);
            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + absolutePDFpath);
        } 
        catch (IOException ex) 
        {
            JOptionPane.showMessageDialog(null, "Er is een fout opgetreden tijdens het openen van het PDF"
                    + " document\nFoutcode: 0xFF05");
            Logger.getLogger(PrintJob.class.getName()).log(Level.SEVERE, null, ex);
        }

2 个答案:

答案 0 :(得分:2)

有关在不同平台上打开PDF的方法,请参阅Desktop.open(File)。像这样......

File file = new File(pdfPath+pdfName);
Desktop.getDesktop().open(file);

如果应用程序。需要支持Java 1.5或更早版本(在Desktop可用之前),坚持使用exec(),但要实现When Runtime.exec() won't的所有建议。

使用Process需要程序员进行可靠的运行有很多事情要做。该代码执行 none

答案 1 :(得分:0)

可能您的代码不起作用,因为您没有指定环境变量。它应该是这样的:

Runtime.getRuntime().exec("command to execute", env[]);