我正在努力使用OS X 10.8中的通知中心。我编写了一个包装器,通过JNA提供对NSUserNotification和NSUserNotificationCenter类的Java访问,但功能有限。我能够发送通知,只要通过JavaApplicationStub从.app包运行.jar就会显示。但是,当通知样式设置为“警报”时,下面的行始终会记录到控制台:
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在bundle外执行时才会运行。当然,这会失败,因为通知永远不会显示。
任何人都可以对上述两个错误提供任何见解吗?
我想知道JavaApplicationStub是否会阻碍,但是当涉及到典型应用程序如何响应通知中心事件时,我处于黑暗中。
答案 0 :(得分:2)
通过更新到位于此处的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)可能是罪魁祸首。