将文件类型与Java Swing应用程序关联
我正在创建一个java swing应用程序,我需要将我的程序设置为文件扩展名.mcsd
(MIME类型text/mcsd
)的默认程序。 这必须适用于Windows,如果它也适用于OS X / Linux,那将会很好。 我对java(3或4个月)有些新意,所以请不要用各种专家的谈话轰炸我。
我已经看到在Windows中将自定义文件扩展名与java应用程序相关联 ,但我不想使用Java Web Start。 如果可能,我还想知道如何设置该文件类型的图标。 我发现exe4j是一种创建.exe
并计划使用它的方法,但如果不是转换为exe的最佳工具或有人知道更好的事情随时告诉我。 另一件事:我需要能够在程序打开后从该文件中获取数据。
所以我的问题是: 我该怎么做?
部署应用程序。 使用Java Web Start :
JWS提供了许多吸引人的function,包括但不限于启动画面,桌面集成, 文件关联,自动更新等。
请参阅文件服务演示。 对于声明对.zzz
文件类型感兴趣的JNLP的示例。
这是在JNLP中声明关联的方式:
JWS由Oracle提供,适用于Windows,* nix和OS X.
..但我不想使用Java Web Start。 因为我希望有一个只安装程序的本机安装程序,而无需打开网页或任何东西。 如果那不是(网络开始)如何工作,那么我很乐意使用它。
JWS通过Web或网络工作。 但是,如果您可以从桌面调用URL(到JNLP)的打开,则不需要打开任何浏览器。
我会在URL对象上使用
openConnection()
吗?
我会使用Desktop
或BasicService
API。
Desktop.getDesktop().browse(uri); boolean result = basicService.showDocument(url);
如BasicService
演示中所述 。
在Java 6+中,显示另一个Web启动启动文件(例如
BasicService.showDocument(another.jnlp))
的调用将直接传递给JavaWS,不会出现浏览器窗口。
鉴于JWS客户端是该文件类型的默认使用者,我希望Desktop
API始终如此。