7

我正在创建一个 java swing 应用程序,我需要将我的程序设置为文件扩展名.mcsd(MIME 类型text/mcsd)的默认程序。这必须在 Windows 上工作,如果它也能在 OS X/Linux 上工作,那就太好了。我对java有些陌生(3或4个月)所以请不要用各种专家谈话轰炸我。

我已经看到将自定义文件扩展名与 windows 中的 java 应用程序相关联,但我不想使用 Java Web Start。如果可能的话,我也想知道如何设置该文件类型的图标。我发现exe4j是一种创建.exe并计划使用它的方式,但如果不是将转换为 exe 的最佳工具,或者有人知道更好的东西,请随时告诉我。另一件事:程序打开后,我需要能够从该文件中获取数据。

所以我的问题是:我该怎么做?

4

1 回答 1

8

部署应用程序。使用Java Web 启动

JWS 提供了许多吸引人的功能,包括但不限于启动屏幕、桌面集成、文件关联、自动更新......

请参阅文件服务演示。有关声明对.zzz文件类型感兴趣的 JNLP 示例。

这是在 JNLP 中声明关联的方式:

<association
  extensions="zzz"
  mime-type="text/sleepytime" />

JWS 由 Oracle 提供,适用于 Windows、*nix 和 OS X。

..但我宁愿不使用 Java Web Start。因为我想要一个本机安装程序,它只安装程序,而不打开网页或任何东西。如果这不是(网络启动)的工作方式,那么我很乐意使用它。

JWS 通过 Web 或网络工作。但是,如果您可以从桌面调用打开 URL(到 JNLP),则不需要打开任何浏览器。

我会openConnection()在 URL 对象上使用吗?

我会使用Desktopor BasicServiceAPI。

Desktop.getDesktop().browse(uri);

boolean result = basicService.showDocument(url);

BasicService演示中所述。

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

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

于 2013-03-16T01:19:57.570 回答