我正在显示文件列表;即 xls、doc、pdf、odt 等,在我的 Java 应用程序(Eclipse RCP)中。当用户单击文件时,我想启动适当的(根据操作系统的想法)本机应用程序,就像它发生在 Windows 资源管理器或 Finder 中一样。
当我在这里时:最好也显示 Finder 或 Explorer 用于不同文件类型的相同图标。
是否有为此的库或 Eclipse 插件?
我正在显示文件列表;即 xls、doc、pdf、odt 等,在我的 Java 应用程序(Eclipse RCP)中。当用户单击文件时,我想启动适当的(根据操作系统的想法)本机应用程序,就像它发生在 Windows 资源管理器或 Finder 中一样。
当我在这里时:最好也显示 Finder 或 Explorer 用于不同文件类型的相同图标。
是否有为此的库或 Eclipse 插件?
你想要的是java.awt.Desktop:
Desktop.getDesktop().open( file );
我现在在 Eclipse 的 SWT 中找到了一个似乎可以解决问题的 API: org.eclipse.swt.program.Program “提供对发现外部程序启动的操作系统特定方面的设施的访问”。
它具有查找给定文件扩展名的程序、获取程序图标甚至启动程序的方法。
听起来您正在使用Java 激活框架(“JAF”)。此 API 可让您确定哪些文件是什么以及您可以对它们执行哪些操作。或者,Java 桌面集成组件(“JDIC”)。JDIC 允许您创建和毫无疑问地查询文件关联。
这两个项目似乎都处于半废弃状态(叹气)。但这对于 Sun 来说是这样的。我只知道其他一些基于 JNI 的 Windows 特定第三方库,称为Winpack。它还做了很多其他的事情。
您可以使用FileSystemView类 (Java 1.4+)获取关联的图标。