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 が渡されます。 ↩︎