这只是一个普遍的问题,我并没有实际项目或其他想要做这件事情的东西。 是否可能在Java中构建应用程序并添加一些框架内容或其他内容,并使用Notication Center?
这只是一个普遍的问题,我并没有实际项目或其他想要做这件事情的东西。 是否可能在Java中构建应用程序并添加一些框架内容或其他内容,并使用Notication Center?
我写了一个简单的 C
-> Objective-C
面向对象编程桥接 .dylib,导出了一个名为 showNotification
的函数,可以立即发送通知。
然后我写了一个JNA
包装器来包装这个dylib中导出的函数。我确信你可以使用 Rococoa 和 JNAerator 的组合来完全消除这个 dylib。
接下来,我编写了一个简单的Java应用程序,并将其转化为应用程序包。这是很重要的一点。如果您的Java应用程序不在应用程序包中,则无法传递通知。
消息将传递到通知中心。
这是完全可行的,只需遵循 NSUserNotificationCenter
的规则即可-它必须在应用程序包中。
我使用了Java 7,更新9。 另一个问题似乎获得了更多成功。
用于构建这个简单应用程序的代码在GitHub上可用。它包含一个Xcode项目,用于创建 .dylib
,以及一个NetBeans项目,该项目利用 .dylib
发送通知。
我找到了一个可能适用于您的解决方案,您可以使用Apple脚本
在osx上显示通知,请尝试以下方法:
Runtime.getRuntime().exec(new String[] { "osascript", "-e", "display notification "This is a message" with title "Title" subtitle "Subtitle" sound name "Funk"" });
您可以在这里阅读有关Apple script
通知的内容。
一种可能的解决方案是当应用程序升级到Growl 2.0时,将Growl通知转发到通知中心。
Growl 2的信息
使用当前版本可以通过MoutainGrowl转发Growl消息
在Java下可以使用libgrowl或jgntp使用Growl
也许这不是最干净的解决方案,并且对用户有一些要求,但它绝对是可行的。