我正在努力使用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是否会阻碍,但是当涉及到一个典型的应用程序如何响应通知中心事件时,我处于黑暗中.
最佳答案 通过更新到位于此处的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)可能是罪魁祸首.