将文件类型与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()吗?

我会使用DesktopBasicService API。

 Desktop.getDesktop().browse(uri); boolean result = basicService.showDocument(url); 

BasicService演示中所述 。

在Java 6+中,显示另一个Web启动启动文件(例如BasicService.showDocument(another.jnlp))的调用将直接传递给JavaWS,不会出现浏览器窗口。

鉴于JWS客户端是该文件类型的默认使用者,我希望Desktop API始终如此。