Ubuntuで、Groovyを使って常駐アプリ作る・その1
以前も書いたとおり、windowsからubuntuに移行してきたばかりです。
以前しようしていたクリップボード管理アプリが動かないので gcliper を入れてみたのですが、マシン起動時に毎回エラーで落ちてしまいます。
勉強がてら自分で作ってみることにしました。
System Trayという難易度高め?の機能を利用してみる
jdk1.6からは、javaでもSystemTrayという標準クラスを利用して常駐アプリを作成可能のようです。したがってSystemTrayの簡単なアプリから作成してみました。
早速難題にぶち当たる
簡単なアプリを作成。僕のスキルでは一人で一からは無理なので、 SystemTrayを使う を参考にさせていただきました。
以下、ソース。
import java.awt.*
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
if (!SystemTray.isSupported()) {
System.out.println("SystemTray is not supported!")
return
}
SystemTray tray = SystemTray.getSystemTray()
Image image = Toolkit.getDefaultToolkit().getImage(args[0])
PopupMenu popup = new PopupMenu()
MenuItem defaultItem = new MenuItem("mustang")
defaultItem.addActionListener({ ActionEvent ev ->
System.out.println("popup action")
} as ActionListener)
popup.add(defaultItem)
TrayIcon trayIcon = new TrayIcon(image, "Tray Demo", popup)
trayIcon.addActionListener({ ActionEvent ev ->
System.out.println("trayIcon action")
} as ActionListener)
tray.add(trayIcon)
おお、結構簡単じゃん!いける・・・と思ってたのですが・・・まったく動きません。
SystemTray is not supported! と表示されてしまい、どうやら動きません。やはりUbuntuじゃ無理??
希望の光
もしかしてUbuntu(Linux?)では動かないのかな??と思って諦めながら調べてみると、 Bug #139177 is not in Ubuntu: “Java 6 system tray not working in Gutsy Tribe 6” というサイトにたどり着く。
Java1.6でも、Ubuntuでは動作しないのね。・・・でも最後の書き込みに、「俺は1.6.0_10で動作確認したら動いたよー」という書き込みがありました。
早速1.6.0_10をインストール、パスを通すと・・・いけた!!
なんかそれっぽいの動きました。すごいよ!!!これでクリップボード管理アプリの第一歩踏み出せたよ!!
ひとこと
便利なのできたら会社のWindows、家のUbuntuの両方で使えるし、Groovyで作ってあるからメンテも楽だし。わくわく。
ディスカッション
コメント一覧
まだ、コメントがありません