実行にあたり端末からコマンドをキーボードで打たなければならないのはGUIの流れに反しています。メニューからプログラムを選択したり、アイコンをダブルクリックしたりして実行するのが一般的です。
ランチャーとは日本語ではミサイルやロケットの発射台だがコンピュータでプログラムをダブルクリックなど少ない操作で起動できるようにするものをいう。ここではLinuxのX-Window(正確にはXのデスクトップ環境の一種であるGNOME)での作成例となる。
デスクトップで右クリックすると「ランチャの生成」を選ぶことができる。
ダイアログの中に必要なものを入力する
今回の例は、javaというフォルダの中のTwoButtonsというjavaプログラムを実行するものです。
[OK]でデスクトップにランチャができます。ダブルクリックでTwoButtonsが起動します。
修正できます。ランチャを右クリックして「プロパティ」を選ぶと下記のように入力項目が表示され変更することもできます。
ランチャをダブルクリックしたときに「コマンド」の内容が実行されます。これは端末から
「コマンド」の欄には端末に書いてCUIで実行するときと同じコマンドが使えます。ただし今まで端末で実行していたときにはカレントディレクトリがjavaというフォルダでした。実行するTwoButtonsというクラスファイルもjavaというフォルダにあるので
java TwoButtons
で良かったのです。
ランチャのダブルクリックで実行する場合、カレントディレクトリはユーザーホームになります。TwoButtonsというクラスファイルはカレントディレクトリに無いので、javaというフォルダにあることを示す必要があります。これが -classpath java の意味です。
java -classpath java TwoButtons
ランチャの実体はテキストファイルです。アイコンの下の名前はファイル名でなく「名前」の欄に入れた文字列です。
本当のファイル名は TwoButtons.desktop ですが、別のファイル名にしても TwoButtons と表示されます。内容は次のようになっています。
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Terminal=false Icon[ja_JP]=gnome-panel-launcher Name[ja_JP]=TwoButtons Exec=java -classpath java TwoButtons Comment[ja_JP]=クリック数を数えます Name=TwoButtons Comment=クリック数を数えます Icon=gnome-panel-launcher
1行目の #!/usr/bin/env xdg-open はなくても動作します。freedesktop.orgのHowto_desktop_filesの解説には次のような例が出ています。
[Desktop Entry] Name=Foo Comment=An amazingly useful program Exec=foo Icon=foo Type=Application Categories=Graphics;3DGraphics;
Execが実行するコマンド。javaプログラムでなければこのような単純な書き方も可能です。
Name, Comment, Icon は国や言語別(ロケールといいます)の指定がないときの表示。[ja_JP]は「日本語_日本」の意味です。ここにいろいろな言語での表記を書いておけば環境に応じて選択して表示する仕組みになっています。
.desktopファイルは初めからエディタで編集しても作ることができます。
たくさんのclassからなるSanTakuFでも -classpath の指定で問題なく実行できます。やり方は全く同じ
デスクトップで右クリックすると「ランチャの生成」を選び、
ダイアログの中に必要なものを入力する
今回の例は、javaというフォルダの中のSanTakuFというjavaプログラムを実行するものです。
[OK]でデスクトップにランチャができます。ダブルクリックでSanTakuFが起動します。
.desktopファイルで実行するとカレントディレクトリがユーザーホームになるので、ファイル選択はユーザーホームからスタートします。
SanTakuFでもclassファイルがユーザーホームのjavaフォルダにあることを示すため -classpath java が必要です。
上記 ランチャ(TwoButtonsとSanTakuF)をつくり、実行してみなさい