我编写了一个创建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);
}
答案 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[]);