这只是一个普遍的问题。我没有实际的项目或其他我想做的事情。 是否可以在Java中构建应用程序并添加一些框架内容或其他内容并使用Notication Center?
答案 0 :(得分:16)
我写了一个简单的C
- >导出函数Objective-C
的{{1}} shim .dylib立即发送通知。
然后我为dylib中导出的函数编写了一个JNA
包装器。我确信你可以使用Rococoa和JNAerator的组合来完全消除这个dylib。
然后我写了一个简单的java应用程序,我变成了app bundle。这是重点。如果您的Java应用程序不在应用程序包中,则不会传递通知。
发送到通知中心的消息。
这显然是可行的,您只需要遵守showNotification
- 的规则,它必须在应用包中。
我使用java 7,为此更新了9。 Another question seems to have had even more success
用于构建此简单应用程序的代码是available on github。它包含一个用于创建NSUserNotificationCenter
的xcode项目,以及一个利用.dylib
发送通知的netbeans项目。
答案 1 :(得分:9)
我找到了一个可能对您有用的解决方案,您可以使用Apple script
在osx上显示通知,试试这个:
Runtime.getRuntime().exec(new String[] { "osascript", "-e", "display notification "This is a message" with title "Title" subtitle "Subtitle" sound name "Funk"" });
您可以在here
中了解Apple script
的通知
答案 2 :(得分:5)
当应用程序更新为Growl 2.0时,一种可能的解决方案是Growl,它会将Growl Notifications转发到通知中心。
有关Growl 2
的信息 可以使用当前版本转发Growl消息 下使用Growl也许这不是最干净的解决方案,它对用户有一些要求,但它肯定是有效的
答案 3 :(得分:4)
我建议你看看IntelliJ IDEA如何处理MountainLionNotifications和GrowlNotifications中的通知。
正如其他答案中所建议的那样,它使用JNA来操作NSObject。