我想将特定文件类型与我的应用程序相关联,因此当我双击该特定类型的其中一个文件时,我的应用程序将打开。这工作得很好,但我双击的文件没有作为参数传递给我的程序。
例如,如果我将我的应用程序与 txt
文件相关联并双击 todo.txt
,我的应用程序将打开,但我不知道是哪个 txt
我双击的文件。
据我所知,这就是它应该在 OS X 上工作的方式,而不是依赖默认行为(它在例如 Windows 上的工作方式),我应该使用 ApplicationListener.handleOpenFile();
来自 com.apple.eawt
.然而,当我尝试这样做时,有人告诉我不允许这样做:
Access restriction: The type ApplicationListener is not accessible due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar
在another question here ,一个人说他在 some Chinese website 上找到了解决方案,另一个说根据 Java 的许可协议(protocol)条款,这是不合法的。
我在 Mac OS X Developer Library 中找不到任何提及它的地方,以及在 this site about JAR Bundler 上可能有用的任何链接就把我送到a dead page on Apple's Developer site .
我错过了什么?是否应该几乎不可能做到这一点,即使它在其他操作系统上微不足道?
可能值得一提...因为 JAR
文件不能与 OS X 上的程序相关联,所以我创建了一个 OS X 应用程序包 使用 JAR Bundler ;一种专门用于将 Java 应用程序视为 native OS X 应用程序的 Apple 工具。使用它可以让我首先将文件类型与我的应用程序相关联。
最佳答案
我用过 OSXAdapter
偏好、关于和退出功能。您也许可以利用它的内省(introspection)方法来避免限制。作为com.apple.eawt.ApplicationListener
已弃用,您可以尝试 com.apple.eawt.OpenFilesHandler
相反。
关于java - 如何将文件作为参数传递给使用 JAR Bundler 创建的 Java 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493742/