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:yuroyoroScalaで書いてたけど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