8

我想将特定文件类型与我的应用程序相关联,因此当我双击此特定类型的文件之一时,我的应用程序将打开。这工作得很好,但是我双击的文件没有作为参数传递给我的程序。

例如,如果我将我的应用程序与txt文件关联并双击todo.txt,我的应用程序将打开,但我不知道txt我双击了哪个文件。

据我所知,这就是它应该在 OS X 上工作的方式,而不是依赖默认行为(它在例如 Windows 上的工作方式),我应该使用ApplicationListener.handleOpenFile();from com.apple.eawt. 但是,当我尝试这样做时,有人告诉我不允许这样做:

访问限制:由于所需库 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar 的限制,无法访问类型 ApplicationListener

另一个问题中,一个人说他在某个中文网站上找到了解决方案,另一个人说根据 Java 的许可协议条款这是不合法的。

我在Mac OS X 开发人员库中找不到任何提及它的内容,并且该站点上有关 JAR Bundler的任何链接似乎有用,只会将我发送到Apple 开发人员站点上的死页

我错过了什么?是否应该几乎不可能做到这一点,即使它在其他操作系统上微不足道?

可能值得一提...由于JAR文件无法与 OS X 上的程序相关联,因此我使用JAR Bundler创建了一个OS X 应用程序包;一种 Apple 工具,专门用于将 Java 应用程序视为本机 OS X 应用程序。使用它首先使我能够将文件类型与我的应用程序相关联。

4

1 回答 1

2

我已经使用OSXAdapter了偏好、关于和退出功能。您也许可以利用它的内省方法来避免限制。正如com.apple.eawt.ApplicationListener已弃用的那样,您可以尝试com.apple.eawt.OpenFilesHandler改用。

于 2011-09-21T02:43:48.060 回答