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