2012-07-30 20 views
18

これは単なる一般的な質問です。私は実際のプロジェクトやこれをやりたいことがある場所を持っていません。 Javaでアプリケーションを構築し、フレームワークなどを追加してNotication Centerを使用することはできますか?Javaの10.8通知センターを使用

答えて

16

シンプルに書いたC - >Objective-C関数をエクスポートしたshim .dylib showNotification通知がすぐに届きました。

次に、dylibにエクスポートされた関数にJNAラッパーを書きました。私はあなたがRococoaJNAeratorの組み合わせを使用して、このdylibを完全に排除できると確信しています。

次に、簡単なJavaアプリケーションを書いて、app bundleに変更しました。これは重要なポイントです。 Javaアプリケーションがアプリケーションバンドルにない場合、通知は配信されません。

通知センターにメッセージが配信されました。

Screenshot of delivered notification

それはあなただけでNSUserNotificationCenterのルールと一緒にプレイしている、極めてなんとかだ - それはアプリケーションバンドルでなければなりません

私はこれにjava 7、update 9を使用しました。 Another question seems to have had even more success

この単純なアプリケーションの作成に使用されるコードはavailable on githubです。 .dylibを作成するためのxcodeプロジェクトと、.dylibを使用して通知を配信するnetbeansプロジェクトが含まれています。

+0

での通知をすることができあなたは、このコードをgithubに公開してください。 –

+1

私は、関連するコードへのリンクで答えを更新しました。それは少なくとも複雑ではなく、サンプルコードとしてのみ意図されています。 – Petesh

+0

アプリバンドルなしで通知を送信する方法は、[この回答](http://stackoverflow.com/a/14698543)を参照してください。 –

5

アプリケーションがGrowl 2.0にアップデートされ、Growl Notificationsを通知センターに転送すると、可能な解決策の1つがGrowlになります。

情報についてGrowl 2

Growlのメッセージがうなり声がlibgrowljgntp

多分それはきれいな解決策ではないですし、それが持っているとJavaの下で使用することができますMoutainGrowl

を使用して、現在のバージョンで転送することができますユーザーにいくつかの要件がありますが、それは間違いなく動作するものです

4

IntelliJ IDEAが通知を処理する方法を、MountainLionNotificationsGrowlNotificationsで調べることをお勧めします。

他の回答で示唆されているように、JNAを使用してNSObjectを操作します。私は「あなたはこれを試してみてください、OSX上の通知を表示するためにApple scriptを使用することができ、あなたのために働くかもしれない解決策を見つけまし:

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

あなたはおよそApple script読むことができる」

8
+0

これは実際に私がこれを行うために見つけた最も簡単な方法です、私のためのアプリバンドルなしでel capitanで動作します –

関連する問題