2012-07-30 91 views
18

这只是一个普遍问题。我没有一个真正的项目或其他我想要做的事情。 是否有可能在Java中构建应用程序并添加一些框架或其他内容并使用Notication Center?在Java中使用10.8通知中心

回答

16

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

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

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

传递给通知中心的消息。

Screenshot of delivered notification

这突出地可行的,你只需要与NSUserNotificationCenter的规则一起玩 - 它必须是在一个应用程序捆绑

我用java 7,为此更新了9。 Another question seems to have had even more success

用于构建这个简单应用程序的代码是available on github。它包含一个用于创建.dylib的xcode项目和一个使用.dylib发送通知的netbeans项目。

+0

报书灿你,请将这段代码发布到github上? – 2013-01-12 14:34:19

+1

我已更新了相关代码链接的答案。它至少并不复杂,仅用作示例代码。 – Petesh 2013-01-12 19:54:14

+0

有关如何在没有应用程序包的情况下发送通知,请参见[本答案](http://stackoverflow.com/a/14698543)。 – 2014-08-26 01:07:56

5

一个可能的解决方案将是咆哮时,应用程序将更新为咆哮2.0将咆哮通知转发到通知中心。

信息约Growl 2

低吼消息可以与目前的版本通过使用转发MoutainGrowl

低吼能的Java下使用libgrowljgntp

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

8

我发现,可能为你工作的解决方案,你可以使用Apple script显示在OSX通知,试试这个:

Runtime.getRuntime().exec(new String[] { "osascript", "-e", "display notification "This is a message" with title "Title" subtitle "Subtitle" sound name "Funk"" }); 

你可以阅读有关Apple script“在here

+0

这实际上是我找到的最简单的方法,对el capitan没有应用程序包 – 2017-09-28 04:23:53