我正在尝试使用CFBundleDocumentTypes将自定义文件扩展名与我的应用程序相关联。据我所知,这似乎“工作” - 当我双击该文件时,JavaApplicationStub启动我的应用程序。但是,我在java中设置的ApplicationListener事件没有注册回调。
我使用Set Default file association Mac OS X Java Package Maker Installer中列出的代码进行文件关联,文件关联本身看起来很好,但似乎是应用程序存根试图启动文件,因此失败了。
我将Apple ApplicatinListener代码添加到我的java应用程序中(类似于http://developer.apple.com/mac/library/documentation/Java/Reference/1.5.0/appledoc/api/index.html?com/apple/eawt/Application.html),但似乎我的应用程序没有得到回调。
代码类似于
Application.getApplication().addApplicationListener(
new ApplicationAdapter() {
public void handleOpenFile(ApplicationEvent evt) {
//some logging message here that I never get
}
}
);
我或许应该提到我也在使用SWT ......
任何帮助将不胜感激
答案 0 :(得分:1)
这个问题并不是很具体,但有些事情会浮现在脑海中:
1)当您使用Apple的JavaApplicationStub
时,启动过程的诊断输出可能如下所示:
$ export JAVA_LAUNCHER_VERBOSE $ ./your.app/Contents/MacOS/JavaApplicationStub
2)您可以查看Apple的示例应用程序OSXAdapter,提及here。
3)这是一个有效的example SWT / Java / Mac应用程序。
答案 1 :(得分:1)