在Java中使用10.8通知中心

arn*_*app 18 java macos notifications osx-mountain-lion

这只是一个普遍的问题.我没有实际的项目或其他我想做的事情.是否可以在Java中构建应用程序并添加一些框架内容或其他内容并使用Notication Center?

Pet*_*esh 16

我写了一个简单的C- > Objective-Cshim .dylib,它导出了showNotification一个立即发送通知的函数.

然后我JNA为dylib中导出的函数编写了一个包装器.我确信你可以使用RococoaJNAerator的组合来完全消除这个dylib.

然后我写了一个简单的java应用程序,我变成了一个app bundle.这是重点.如果您的Java应用程序不在应用程序包中,则不会传递通知.

邮件已发送至通知中心.

已发送通知的屏幕截图

这显然是可行的,你只需要遵守规则NSUserNotificationCenter- 它必须在应用程序包中.

我使用java 7,为此更新了9.另一个问题似乎取得了更大的成功.

用于构建这个简单应用程序的代码可以在github上找到.它包含一个用于创建的xcode项目.dylib,以及一个利用它.dylib来传递通知的netbeans项目.


Fan*_*ini 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"" });
Run Code Online (Sandbox Code Playgroud)

你可以Apple script这里阅读有关的通知


arn*_*app 5

当应用程序更新为Growl 2.0时,一种可能的解决方案是Growl,它会将Growl Notifications转发到Notification Center.

Growl 2的信息

可以使用MoutainGrowl使用当前版本转发Growl消息

Growl可以在Java下使用libgrowljgntp

也许它不是最干净的解决方案,它对用户有一些要求,但绝对是有效的