Re:java,scalaからGrowlに通知を送る方法
先日の197XのLTの最中に自重をしらない地豆組の人たちにcnkと大量にSkypeに流され、
Growlにいっぱいcnkと出てしまいました。とても恥ずかしかったので地豆の人たちには
十分に自重して頂きたいものですw
嫌な事件だったね・・・
というわけで元祖cnkの@yuroyoroからPOSTがあった*1ので乗ってみた。
あわせて読みたい
java,scalaからGrowlに通知を送る方法 - ゆろよろ日記
http://d.hatena.ne.jp/yuroyoro/20090724/1248431961
Growlってのは簡単言うとMSNメッセンジャやSkypeとかで新着メッセージをポップアップ
してくれる小さなウィンドウを表示してくれるツール。Macユーザーならみんな使ってる
でしょ。ふつー。
id:yuroyoroはScalaで書いてたけどJavaでかいてみました。
GrowlInvoker.java
package com.regtan.growl; import java.util.ArrayList; import info.growl.Growl; import info.growl.GrowlUtils; public class GrowlInvoker { static final String APP_NAME = "GrowlInvoker"; static final String NOTIFICATION_NAME = "Growl From Java"; public static void main(String[] args) { try{ Growl growl = GrowlUtils.getGrowlInstance(APP_NAME); growl.addNotification(NOTIFICATION_NAME , true); growl.register(); ArrayList<MessageBean> messageList = new ArrayList<MessageBean>(); messageList.add(new MessageBean("YUKI.N","また図書館へ")); messageList.add(new MessageBean("ルリ","バカバッカ")); messageList.add(new MessageBean("レイ","こういうときどういう顔していいかわからないの")); messageList.add(new MessageBean("アスカ","あんたばかぁ?")); messageList.add(new MessageBean("マリ","LCLの匂いがする・・・")); messageList.add(new MessageBean("ミク","みっくみくにしてあげる〜♪")); messageList.add(new MessageBean("兄貴","最近だらしねぇな!!")); messageList.add(new MessageBean("レナ","うそだっ!")); messageList.add(new MessageBean("アリシア","あらあらうふふ")); messageList.add(new MessageBean("ランカ","キラッ☆ミ")); messageList.add(new MessageBean("なのは","少し・・・頭冷やそうか・・・")); for(MessageBean mb:messageList){ growl.sendNotification(NOTIFICATION_NAME, mb.getName(), mb.getMessage()); } }catch(Exception e){ System.out.print(e.toString()); } } }
MessageBean.java
package com.regtan.growl; public class MessageBean { private String name = ""; private String message = ""; public MessageBean(String name, String message) { this.name = name; this.message = message; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
実行の手順としては
java,scalaからGrowlに通知を送る方法 - ゆろよろ日記
http://d.hatena.ne.jp/yuroyoro/20090724/1248431961
に書いてある通りにソースを入手してください。
解凍後にできたディレクトリに移動しantを実行。そうするとjarとjnilibが生成されます。
jarにクラスパスを設定して上のGrowlInvoker.javaとMessageBean.javaをコンパイル。
ソース実行時にはjnilibを置いているディレクトリを-Djava.library.pathオプションで
指定して実行します。
実行したらこんな感じ
cnkとかそういうのは適度に自重しましょうw