5

我在 OS X 10.8 中的通知中心苦苦挣扎。我编写了一个包装器来通过 JNA 提供对 NSUserNotification 和 NSUserNotificationCenter 类的 Java 访问,但是功能是有限的。我可以发送通知,只要 .jar 通过 JavaApplicationStub 从 .app 包运行,它就会显示。但是,当通知样式设置为“警报”时,以下行始终会记录到控制台:

11/29/12 8:37:12.537 PM usernoted[162]: Failed to validate application at (null) -67061

接下来,单击通知会导致以下内容被记录到控制台:

11/29/12 8:38:15.291 PM usernoted[162]: Cannot find originating application to launch for event action.  file://localhost/Users/geoffodonnell/Projects/bin/GuiTest.app/ is not the same app as the one that sent the original notification.

我确实为 NSUserNotificationCenter 类提供了一个委托,但是这些方法只有在 .jar 在包之外执行时才会运行。自然,这违背了目的,因为通知将永远不会显示。

谁能提供对上述两个错误的任何见解?

我想知道 JavaApplicationStub 是否妨碍了我,但是当谈到典型应用程序将如何响应通知中心事件时,我一无所知。

4

1 回答 1

2

通过更新到位于此处的 JDK 7u10(开发者预览版)解决了这个问题,

http://jdk7.java.net/download.html

并使用此处描述的 appbundle 工具,

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

创建您的应用程序包。该工具使用不同的可执行存根文件创建应用程序包,因此可能是 JavaApplicationStub(和/或 JRE 1.6)是罪魁祸首。

于 2012-12-09T16:32:07.680 回答