如何在SWT中使用默认应用程序打开文件?

mar*_*osh 6 java swt

我有例如.pdf文件(该文件的路径).如何在SWT应用程序的默认应用程序(可能是Acrobat Reader)中打开此文件(例如,单击按钮)?

Edw*_*son 11

你应该可以使用:

Program.launch(file);
Run Code Online (Sandbox Code Playgroud)

打开文件(使用默认应用程序或创建者).来自javadoc:

启动与文件或URL关联的操作系统可执行文件(http://或https://).如果文件是可执行文件,则启动可执行文件.请注意,Display必须已存在以保证此方法返回适当的结果.

请注意,有一些特性Program.launch()(或者至少有一些特性,尽管这些可能已在更新版本的运行时中得到修复.)我真的不记得错误的具体细节,但我们会做一些检查以解决一些问题.问题:

  1. 如果您使用的是Unix平台,并且指定了绝对路径,则可能无法打开该文件.我们将绝对路径作为前缀/.- 这样/tmp/foo就可以转换为/./tmp/foo- 尽管我真的不记得这个bug的具体细节了.

  2. 在Windows上,如果您尝试打开UNC路径(例如\\server\bar),则需要将该字符串换成双引号.例如:Program.open("\"\\server\bar\"");