Debian GNU/Linux 5.0 コードネーム "Lenny"(以下、Debian lenny と記述)をインストールしたArmadilloで、Java を動作させる方法を紹介します。Java のランタイムとして、OpenJDK を使用します。
おおまかな手順は以下のようになります。
本 Howto で使用する機器及びソフトウェアのバージョンは以下の通りです。
- ターゲット: Armadillo-440 液晶モデル/Armadillo-500 FX 液晶モデル
- 開発環境(作業用PC): ATDE v3 v20100309
- ディストリビューション: Debian GNU/Linux 5.0 (コードネーム「Lenny」)
- Javランタイム: OpenJDK 6b11-9.1+lenny2
1. Debian lenny のインストール
Armadillo-440 液晶モデルに Debian lenny と X Window System をインストールする方法は、「Howto: Armadillo-440 液晶モデル を使用して Debian 上で X.org を使ってみる」を参照してください。
また、Armadillo-500 FX 液晶モデルに Debian lenny と X Window System をインストールする方法は、「Howto: Armadillo-500 FX 液晶モデルでDebian lennyを使う」を参照してください。
2. Java Runtime のインストール
OpenJDK6のランタイムの Debian パッケージ名は、openjdk-6-jre です。Debian lenny がインストール済みの Armadillo に Javaランタイムをインストールするには、以下のコマンドを実行してください。
debian:~# apt-get install openjdk-6-jre
非GUIのアプリだけを実行する場合、openjdk-6-jre の代わりに openjdk-6-jre-headless をインストールしても構いません。
3. Java 開発環境のインストール
作業用 PC に Java 開発環境をインストールします。作業用 PC で以下のコマンドを実行してください。
[PC ~]$ sudo apt-get install openjdk-6-jdk
4. サンプルプログラム(非GUI)
ターミナルに「Hello World」と表示するだけのJavaアプリを作成し、実行してみます。
作業用 PC で以下の HelloWorld.java を作成してください。
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
*.javaファイルをコンパイルするには、javacコマンドを使用します。以下のコマンドを実行してください。
[PC ~]$ javac HelloWorld.java
正常にコンパイルできると、HelloWorld.class が作成されます。クラスファイルを実行するには、javaコマンドを使用します。以下のコマンドを実行してください。
[PC ~]$ java HelloWorld
Hello World
Armadillo で実行する場合も、java コマンドを使用します。HelloWorld.class を Armadillo へコピーし、以下のコマンドを実行してください。
debian:~# java HelloWorld
Hello World
5. サンプルプログラム(GUI)
次は、GUIを使ったJavaアプリの動作を確認します。GUIツールキットには、swingを使用しました。
作業用 PC で以下の HelloWorldGui.java を作成してください。
HelloWorldGui.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class HelloWorldGui extends JFrame implements ActionListener {
private JLabel label;
private JButton button;
public HelloWorldGui() {
// Disable Title Bar
this.setUndecorated(true);
// Full Screen
GraphicsDevice device = GraphicsEnvironment.
getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(this);
// Get ContentPane
Container contentPane = getContentPane();
// Add label
label = new JLabel("Hello Java with swing.");
contentPane.add(label, BorderLayout.CENTER);
// Add Button
button = new JButton("Click me!");
contentPane.add(button, BorderLayout.SOUTH);
button.addActionListener(this);
// Show Window
this.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == button) {
label.setText("Button is clicked.");
}
}
public static void main(String [] args) {
new HelloWorldGui();
}
}
コンパイル、実行方法は非GUIの場合と同じです。HelloWorldGuiを実行すると、「Hello Java with swing.」と書かれたラベルと、「Click me!」と書かれたボタンを含むフレームを全画面で表示します。ボタンをクリックすると、ラベルの値が「Button is clicked.」に変化します。
[PC ~]$ javac HelloWorldGui
[PC ~]$ java HelloWorldGui
HelloWorldGui.class を Armadillo にコピーして、同様に動作確認をしましょう。X のクライアントとして Java アプリを動作させます。すでに X が起動している場合は一度終了して、HelloWorldGui.class があるディレクトリで以下のコマンドを実行してください1。
debian:~# startx $(which java) HelloWorldGui
起動直後は、ラベルに「Hello Java with swing.」と書かれています。
画面下のボタンをクリックすると、ラベルのテキストが「Button is clicked.」に変わります。
このように、startx コマンドの引数として X クライアントを直接指定した場合、javaコマンドには DISPLAY 環境変数としてデフォルトのディスプレイ :0 が渡されます。 ↩