我尝试使用语句打开一个 pdf 文件
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "Sample.pdf");
.
但是我没有pdf
在我的系统中安装阅读器。所以当我执行这个程序时什么都没有显示。没有例外。Pdf
如果系统中未安装阅读器,任何想法都会出现异常。如果Pdf
已经安装了阅读器,则此程序运行良好。
我尝试使用语句打开一个 pdf 文件
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "Sample.pdf");
.
但是我没有pdf
在我的系统中安装阅读器。所以当我执行这个程序时什么都没有显示。没有例外。Pdf
如果系统中未安装阅读器,任何想法都会出现异常。如果Pdf
已经安装了阅读器,则此程序运行良好。
编辑
因为我以前的解决方案不起作用。这是另一个肯定会为您工作的方法:
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);
}
为此,您必须处理注册密钥。
使用JNI来解决问题。
String productName = Advapi32Util.registryGetStringValue(
WinReg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName");
System.out.printf("Product Name: %s\n", productName);