現代のアプリケーション開発では、Java であれば Eclipse などの統合開発環境(IDE)を使うことが一般的でありますが、昔はテキストエディタとコマンドプロンプトだけで、アプリケーションの開発をしていた時代もありました。
この記事では、現代で使われる便利なツールから少し離れて、Java の開発をテキストエディタとコマンドプロンプトだけでやってみましょう。
もちろん、普段の開発では Eclipse などの便利な統合開発環境(IDE)を利用することお勧めしますが、コマンドで Java のコンパイルや実行をする仕組みを知っておくと、さらに Java に対する知識が深められるため、一度は経験をしておいた方がよいでしょう。
Javaの開発環境の導入
統合開発環境(IDE)での開発や、コマンドプロンプトで開発する場合のどちらでも、Java の開発ツールである JDK のインストールは必須です。
現代の JDK は、Oracle社が提供する「Oracle JDK」や、Javaの開発コミュニティが無償で提供する 「Open JDK」、さらには「AdoptOpenJDK」や「Azul Zulu」などの各団体が提供する JDK が存在します。基本的にはどの JDKを使用しても Java の API レベルでは同じです。サポート面で無償・有償の違いやLTSなどのサポート期間などが各団体ごとに異なります。
今回は無償で使えるメジャーな OpenJDKのダウンロード及びインストールを行います。配布元の「http://jdk.java.net/」より 最新の JDKをダウンロードしましょう。(2021年7月時点では JDK 16)が最新です)
Javaプログラムソースの作成
Open JDK の準備ができたら、定番の「Hello Java」をコマンドプロンプト上に表示する Java のソースコードを作成します。
テキストエディタを起動後、次の内容をコピーして「Main.java」というファイル名で保存します。
public class Main {
public static void main(String args[]){
System.out.println("Hello Java!");
}
}
作成したソースコードをコンパイルする
ソースコードの準備ができたら、コマンドプロンプトを立ち上げます。(Mac OSの場合はターミナル)
ソースコードを作成したディレクトリに移動し javacコマンドで作成したソースコードをコンパイルしてクラスファイルを作成します。
cd <ソースコードを作成したディレクトリ>
javac Main.java
コンパイルが完了すると、ソースコードと同じディレクトリに「Main.class」という名前でクラスファイルが生成されているでしょう。
クラスファイル(.class)は、Javaで書かれたソースコードを、Java仮想マイン(JVM)が分かる言語に置き換えた中間言語ファイルで、JVMはこのファイルを読み込みアプリケーションを実行するのが特徴です。
C言語などの Java 以外のコンパイル言語では、コンパイルされた成果物はプラットフォーム依存の機械語レベルにまで翻訳されるため、例えば Windows 向けにコンパイルされたファイルは、Mac OSや Linuxなどの他のプラットフォームでは使用できず、複数のプラットフォームで実行する場合は、環境毎にコンパイルした物が必要になりますが、Javaの場合は、JVM がプラットフォームの差異を吸収してくれるため、一度コンパイルしたクラスファイルなどは、Windows・Mac OS・Linux問わず、複数の環境で同じファイルを実行することが可能です。
Javaプログラムを実行する
上でコンパイルして出来た「Main.class」を実行してみましょう。
コマンドプロンプトで、クラスファイルが生成されたフォルダに移動しjava <クラス名>のコマンドを入力します。
cd <ソースコードを作成したディレクトリ>
javac Main.java
正常に実行されると、コンソール上に「Hello Java!」の文字が出力されるでしょう。
このように、普段はソースコードを作成して Eclipse などの便利な統合開発環境(IDE)から実行しているためコンパイルという作業をあまり意識しないかもしれませんが、Javaはコンパイル言語であるため、このようなコンパイルを行なってから実行するという操作を、Eclipse は内部で自動的に行なっています。
GUIアプリケーションを作ってみよう
最後に GUI アプリケーションを、テキストエディタとコマンドプロンプトだけで作ってみましょう。
GUI アプリをテキストエディタで?と疑問に思う方もいると思いますが、作成することは可能です。ただし、当然のことならが、GUIの画面デザインを編集するツールはテキストエディタには含まれないため、画面のボタンの配置などは、すべてコードで手作業で書く必要があります。
今回は、次のイメージのようにボタンをクリックしたら、数値が1つずつカウントアップされる簡単なGUIアプリケーションを、テキストエディタだけで作成してみます。
ソースコードは次の通りです。ファイル名は「SampleFrame.java」で保存します。
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SampleFrame extends JFrame implements ActionListener {
private int count = 0;
private JButton button = null;
public SampleFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setSize(300, 150);
button = new JButton(String.valueOf(count));
button.addActionListener(this);
add(button);
}
public void actionPerformed(ActionEvent e) {
count++;
button.setText(String.valueOf(count));
}
public static void main(String[] args) {
SampleFrame test = new SampleFrame();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
}
}
ソースコードの準備ができたら、次のコマンドでコンパイルと実行します。
cd <ソースコードを作成したディレクトリ>
javac SampleFrame.java
java SampleFrame
まとめ
テキストエディタとコマンドプロンプトで Java アプリケーションを開発する方法を紹介してきました。Java コマンドを使ってアプリ開発を試して Java の理解を深めていきましょう。
JDK は Java Development Kit を略した名称で、Java のプログラムの開発・コンパイル・実行を行うためのツールセットです。JDK の中には Java アプリケーションを実行するために必要な JRE (Java Runtime Environment)や、Javaのソースコードを JVM上で実行するための形式に変換する コンパイラや開発者向けのツールが含まれています。