2013-03-26 45 views
1

我试图用声明打开pdf文件如何检查PDF阅读器安装Java

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "Sample.pdf");

但我没有在我的系统中安装pdf阅读器。所以当我执行这个程序时,什么都没有显示。没有例外来临。如果Pdf阅读器未安装在系统中,任何想法都会得到例外。如果已经安装了Pdf阅读器,该程序正在运行完美。

回答

2

编辑
由于我以前的解决方案不起作用。这里是另外一个,肯定会为你工作:

try 
{ 
    File file = new File("Sample.pdf"); 
    java.awt.Desktop.getDeskTop().open(file); 
    System.out.println("File opened successfully"); 
}catch(Exception ex) 
{ 
    System.out.println("Error occurred: "+ex); 
} 
+0

非常感谢你 – alenlee 2013-03-26 06:59:14

+0

喜维沙尔它不工作。它来自if块本身 – alenlee 2013-03-26 07:23:48

+0

@alenlee:观看我的更新.. – 2013-03-26 14:51:43

0

对于你必须处理与注册按键。

使用JNI来伎俩。

String productName = Advapi32Util.registryGetStringValue(
      WinReg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName"); 
     System.out.printf("Product Name: %s\n", productName); 

read/write to Windows Registry using Java

+0

我已经包括jna jar.but我找不到Advapi32Util jar文件。我试过Windows 64与64 bit.is有任何其他的jar需要? – Ami 2013-04-19 10:17:46