フリーのJava開発環境である OpenJDK を使ったプログラムのコンパイルと実行について説明する。
※ 以下の説明は2022年9月現在のものであり、URLやバージョン番号は異なる場合がある。
Java の強みは同じプログラムがさまざまな環境で動作することである。以下ではWindows環境を中心に説明するが、ほぼ同様の手順で Linux などでも動作させられるので興味のある人は試してみるとよい。
Java は、標準ですべてのパソコンOSで利用できるようになっているわけではない。多くの場合、Javaの開発・実行環境をインストールする必要がある。 OpenJDK は Javaのフリーでオープンソースな開発・実行環境である。 64ビットWindows や Linux をはじめとするほとんどのメジャーなパソコンOS上のものが用意されている。
※ 32ビットWindows用の OpenJDK はないので、32ビットWindows環境の場合は Oracle の Java SE 8 などをインストールする必要がある。
※ 大学演習室のパソコンには OpenJDK がインストール済みなので、各自でインストールする必要はない。
OpenJDK は、
の、
から各自の環境に合うものをダウンロードする。64ビットWindows環境の場合は、
のzipファイルをダウンロードする。
※ 2022年9月現在、上の手順で OpenJDK 18.0.2.1 がダウンロードされる。
しかし少なくとも2020年9月現在では、OpenJDK のバージョンが 15 だと Visual Studio Code 上で正常に動作しない。(そのうちVisual Studio Codeがアップデートされて動作するようになるとは思われる)
2020年9月時点で Visual Studio Code で Java の学習をしていくのであれば、バージョン 14 の OpenJDK を入れて設定すること。
バージョン 14 は、上記ページのウィンドウ左側上部にある
の
を選び、zipファイルをダウンロードすればよい。OpenJDK のバージョンは 14.0.2 となる。
ダウンロードしたzipファイルを、適当な場所 (例えば C:\java) 以下に展開する。
以下では、OpenJDK 18.0.2.1 を C:\java 以下に展開したとする。(バージョンが違う場合は適宜読み替えてほしい。)
この場合、
ディレクトリ以下に OpenJDK 一式が置かれる。
次に環境変数 Path の設定を行なう。
Windows 10の場合、
を開く。さらに、下部にある
をクリックし、
の
を編集する。
OpenJDKをインストールしたディレクトリの bin サブディレクトリを Path の先頭に追加する。今回の例では、
を Path 先頭に追加すればよい。
PowerShell または コマンドプロンプトを開き、
で、Java実行環境が OpenJDK 18 のものになっていることを確認する。また、
で、Javaコンパイラが OpenJDK 18 のものになっていることを確認する。
java のバージョンと javac のバージョンが揃っていないと不具合が発生するので、両方のバージョンがそろっていることを確認しておくこと。
例として、例題1のプログラムを使う。
授業用のフォルダ (ディレクトリ) を H:\ap1 とする。 フォルダが異なる場合、以下の説明のフォルダの箇所をすべて置き換えて読むこと。
上記のフォルダに、例題1のソースファイルをクラス名 Rei1 に .java を付けた Rei1.java という名前で、テキストファイルエディタ
(Windowsのメモ帳やサクラエディタ など)
で入力・保存する。
なお、例題1はpackage指定がない (デフォルトパッケージ使用) ので、ディレクトリ H:\ap1 直下にファイルを置けばよい。
package指定がある場合は、そのピリオド区切りの名前をそれぞれサブディレクトリとして到達する深いディレクトリにファイルを置く必要がある。
ディレクトリ、パッケージ名、ファイル名は各自のものに読み替えること。
PowerShell を起動 (または「コマンドプロンプト」を起動)
コマンドプロンプトの場合、/D オプションをつけた cd コマンドでプロジェクトのドライブ・ディレクトリに移動 (カレントドライブ・カレントディレクトリが異なる場合)
C:\Users\fit-user> cd /D H:\ap1
【注意】一部のディレクトリ名の中にスペースが入っている場合は全体をダブルクォーテーションで囲んで指定する必要がある。(下記参照)
C:\Users\fit-user> cd /D "H:\2022\授業 応用プロ1"
PowerShell の場合、単に cd コマンドでプロジェクトのドライブ・ディレクトリに移動できる。(実際には cd は Set-Location コマンドレットの alias (別名) になっている)
PS C:\Users\fit-user> cd H:\ap1
【注意】一部のディレクトリ名の中にスペースが入っている場合は全体をダブルクォーテーションで囲んで指定する必要がある。(下記参照)
C:\Users\fit-user> cd "H:\2022\授業 応用プロ1"
上記のように、cd コマンドで正しく作業ディレクトリが変更できると、プロンプトに表示されるカレントディレクトリが指定したものに変わる。
コマンドプロンプトの場合
H:\ap1>
Windows PowerShell の場合
PS H:\ap1>
※ ソースファイルのディレクトリ (上では H:\ap1) は、各自の保存場所に合わせて指定する必要がある。手で打って入力するか、あるいは、エクスプローラで保存場所のフォルダを開いた状態でアドレス部分をコピーして貼り付けてもよい。
javacコマンドでソースファイルをコンパイルする。
H:\ap1> javac Rei1.java
※ ソースファイルの文字コード (エンコーディング) が使用OSの標準と異なる場合は、それを指定する必要がある。以下はソースファイルがシフトJISの場合、UTF-8の場合である。
javac -encoding SJIS Rei1.java (シフトJISの場合)
javac -encoding UTF-8 Rei1.java (UTF-8の場合)
Windows の Java では、バージョン 17 以前の場合はシフトJISが標準になっており、バージョン 18 以降は UTF-8 が標準になっている。標準のエンコーディングでソースファイルを作成すればエンコーディング指定は必要ない。
実行させるのは main メソッドがあるソースファイル Rei1.java をコンパイルしてできたクラスファイル Rei1.class (デフォルトパッケージ) である。
パッケージ名、クラス名は大文字・小文字を区別するので間違えずに入力しないといけない。
javaコマンドでクラスファイル Rei1.class を実行する。以下のように .class をつけずに入力する。
H:\ap1> java Rei1
Java 11 以降は、単一クラスファイルなどの場合 java コマンドにソースファイルを指定して直接実行させることができる。このソース直接実行の場合は上記の javac によるコンパイル作業をしてはいけない。例のプログラムでは下記コマンドで実行できる。
H:\ap1> java Rei1.java
以下の手順により、Javaプログラムの入力・デバグ・実行が Visual Studio Code の中でできるようになる。
各手順の詳細は省略する。各自で設定して使ってみるとデバグの効率が上がるのが実感できるはずである。
以下、ポイントとなるところだけ簡単に示す。
上記は Visual Studio Codeのインストールの際にオプションを設定する画面で、
にチェックを入れる。また、
のチェックも入ったままにする。その他、好みで
をチェックしてもよい。
インストールが終わったら、Visual Studio Codeを起動し、画面左端真ん中くらいの
を選択する。
左上の検索入力部分に
と入力すると
が見つかるので、インストールする。
同様に、入力部分に
と入力すると
が見つかるので、インストールする。
再起動すると、メニューが日本語化されており、拡張機能として Java Extension Pack が入った状態になる。
次に、ウィンドウ左下の歯車記号のような「管理」
をクリックする。メニューが出たら
を選ぶ。
上部の検索入力部分に
と入れると、Java:Home が見つかるので
をクリックする。ここで、
で始まる行の後にダブルコーテーションで囲んで OpenJDK のパスを入力する。OpenJDK を C:\java\jdk-18.0.2.1 にインストールしていた場合、下図のようになる。
異なるバージョンをインストールしている場合は図のバージョンの箇所を置き換えて入れること。
このとき、パスの区切りの円マーク \ は \\ のように2文字で入れることに注意する。ここでは、円マークとバックスラッシュは同じ文字コードを持っており、円マークをキーボードから普通に入れるとバックスラッシュとして入る。
以上で、インストール時の設定は終わりとなる。
次に、Visual Studio CodeでのJavaプログラムのデバグ、実行について簡単に説明する。
まず、Visual Studio Code ではソースファイルは UTF-8 エンコーディングで編集・保存すること。もしサクラエディタ等で シフトJIS (サクラエディタの指定では SJIS) で作ったソースがあって、それを Visual Studio Code上で動作させたい場合は、一度 UTF-8 で保存し直すこと。
コンパイルエラー箇所をエディタ上で確認するためには、Javaソースファイルを直接Visual Studio Codeで開いてはいけない。
Visual Studio Code用の作業フォルダを用意し、
エクスプローラでそのフォルダを右クリックして「Codeで開く」を選択するか、または、
Visual Studio Codeを起動して「ファイル」メニューの「フォルダーを開く」によってそのフォルダを開かなければならない。
その状態で、Javaソースファイルを編集すればよい。
エラー箇所とエラー内容は F8 キーで前から順に、Shift-F8 キーで逆順に調べることができる。
実行・デバグは「実行(R)」メニューの「デバッグ無しで実行」(Ctrl-F5 キー) あるいは「デバッグの開始」(F5 キー) で行なうか、あるいは、mainメソッドの上の行に表示される「Run|Debug」の、Run でプログラムの実行が、Debug でデバグができる。
実行・デバグの際に、メッセージ
が出たときは、
を選択して進める。ただし、
などの場合、Visual Studio Codeのキャッシュが悪さをして当該のプログラムが動作しない (別のソースが実行対象となる) ことがある。そのときは、メッセージ
の後で、
を選んで、
を選択し、キャッシュをクリアした後、実行・デバグをやり直すこと。
なお、デバグ時には前もって停止させたい行の行番号の左側をクリックして赤丸で表されるブレークポイントを設定しておく必要がある。ブレークポイントで停止の後は、ステップ実行・変数の値の確認、継続実行などが可能になる。
Javaによる開発では、コード入力・デバグ・実行だけでなくGUIアプリケーションのデザイン等も可能な統合開発環境が多く利用されている。代表的なものとして
がある。どちらも専門的な多くの機能を持つが、基本的な使い方には共通部分があるので、一方の使い方を覚えればもう一方もある程度は使えるようになる。演習室のパソコンには Eclipse がインストールされている。
Javaの入門・勉強レベルでは統合開発環境を使うまでもないので、授業の前半期間は使用しないが、後半でGUIアプリケーションを作る演習があり、その際に Eclipse を使う。