【问题标题】:Associate file extension with JavaFX Mac OS X application将文件扩展名与 JavaFX Mac OS X 应用程序相关联
【发布时间】:2015-05-27 21:03:53
【问题描述】:

我已经为 Mac OS X 捆绑了一个 JavaFX 应用程序。我现在正在尝试将文件扩展名与 sample.app 应用程序相关联。 This 是我能找到的关于这件事的最后一个问题,但我无法让它发挥作用。有什么新东西我错过了吗?

【问题讨论】:

    标签: macos javafx file-association info-plist


    【解决方案1】:

    为 OS X 本机打包应用程序指定文件关联的能力是 Java 8u40 中添加到 Java 客户端打包程序的一项新功能。

    来自Oracle Java 8u40 client application deployment documentation

    7.3.7 将文件与自包含应用程序关联

    独立应用程序的安装程序可以设置为 为应用程序注册文件关联。这 元素在 Ant 任务中用于标识可以被 由应用程序处理。文件关联基于 文件扩展名或 MIME 类型。

    以下示例将应用程序与具有 MIME 类型application/x-vnd.MyAppFile

    <fx:info title="Association example">   
        <fx:association
            mimetype="application/x-vnd.MyAppFile" description="Sample Test Files">   
        </fx:association> 
    </fx:info>
    

    为 Java 8u40 实现的相关问题:

    【讨论】:

    • 太棒了!当您回答这个问题时,我实际上正在阅读文档。虽然我仍然有一个问题:OpenFilesEvent 仅在我的应用程序已经运行并且我双击具有已处理扩展名的文件时才会触发。如果是双击本身打开应用程序,是否也可以触发此事件?
    • OpenFilesEvent 是什么?您可以链接到记录的位置吗?好的,我想我从你的问题com.apple.eawt.AppEvent.OpenFilesEvent 的链接中看到了。我认为 Oracle Java 运行时不支持 com.apple API,即使它们有时可能会起作用(我不确定)。
    • 我正在使用 setOpenFilesHandler 来了解哪个文件打开了我的应用程序here is the documentation。我这样做是为了当我双击一个文件时,我可以打开我的应用程序并显示文件内容。问题是 OpenFilesEvent 只有在我的应用程序已经打开时才会触发。
    • 是的,但那是 Java 的 Apple 版本的文档,其最后一个版本(据我所知)是 Java 1.6。它不是适用于 Mac 的 Java 的 Oracle 版本的文档(这是您正在使用的并且我的回答与之相关)。您链接的文档和功能不太可能适用于适用于 Mac 的 Oracle Java 运行时并受其官方支持。
    • 我建议您在 JavaFX developer mailing list 上发布指向您之前相关(且当前未回答)的 StackOverflow 问题的链接:Pass Parameters to JavaFx Application by double-click on file,看看是否有人有专业知识来回答它(我没有有这样的专业知识)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2015-12-07
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多