2008/10/16

ubuntuで、groovyを使って常駐アプリ作る・その1

以前も書いたとおり、windowsからubuntuに移行してきたばかりです。

以前しようしていたクリップボード管理アプリが動かないのでgcliperを入れてみたのですが、マシン起動時に毎回エラーで落ちてしまいます。

勉強がてら自分で作ってみることにしました。

System Trayという難易度高め?の機能を利用してみる

jdk1.6からは、javaでもSystemTrayという標準クラスを利用して常駐アプリを作成可能のようです。したがってSystemTrayの簡単なアプリから作成してみました。

早速難題にぶち当たる

簡単なアプリを作成。僕のスキルでは一人で一からは無理なので、SystemTrayを使うを参考にさせていただきました。

以下、ソース。

import java.awt.*
import java.awt.event.*

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で作ってあるからメンテも楽だし。わくわく。

0 件のコメント:

コメントを投稿