如何将文件作为参数传递给使用JAR Bundler创建的Java应用程序?

kba*_*kba 8 java macos executable-jar jarbundler file-association

我想一个特定的文件类型与我的应用程序相关联,所以当我双击此特定类型的文件之一,我的应用程序打开.这很好用,但是我双击的文件不会作为参数传递给我的程序.

如果我对我的情况与应用程序相关联txt的文件,我双击todo.txt,我的应用程序打开,但我不知道该txt文件我双击.

从我可以读,这是它是如何应该在OS X工作,而不是依靠默认行为(它是如何工作的如Windows),我应该使用ApplicationListener.handleOpenFile();com.apple.eawt.然而,当我尝试这个时,我被告知我不允许这样做:

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

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

我在Mac OS X开发人员库中找不到它,在这个网站上关于JAR Bundler的任何链接似乎都很有用,只是将我发送到Apple开发者网站上的一个死页.

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

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

tra*_*god 2

我使用过OSXAdapter首选项、关于和退出功能。您也许可以利用它的内省方法来避免限制。由于com.apple.eawt.ApplicationListener已弃用,您可以尝试com.apple.eawt.OpenFilesHandler改为。