将OS X 10.8通知中心(NSUserNotification)与Java一起使用



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

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是否会妨碍我,但当谈到典型的应用程序将如何响应通知中心事件时,我一无所知。

这个问题可以通过更新到JDK 7u10(开发者预览版)来解决,位于这里,

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

使用这里描述的appbundler工具,

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

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

相关内容

  • 没有找到相关文章

最新更新