はじめに
前回の記事では、WSL(Ubuntu)の環境構築を行いました。
その記事の中でミニマムなゲーム作りをしたい、と記載しました。
そこで今回は、Javaを使いシンプルなじゃんけんゲームを作成することにします。
Javaでないといけない理由はないのですが、Javaは広く使われている言語なので覚えておいて損はないかと思い選択しました。
前提事項
前提事項としては以下のとおりです
使用環境
- OS:Windows11 Home
- CPU:Intel
- Linux環境:Ubuntu
- WSL(Ubuntu 26.04 LTS)
- OpenJDK 21(今回準備するもの)
補助ツール
ChatGPT
AIにも慣れておきたいなぁ、ということで使用しています。
学習目的のため、実行するコマンドをただ提示させるのではなく、コマンドを実行する理由やコマンドの意味もをあわせて提示するように指示しました。
※念のため実際に説明や解釈が合っているか調べて確認しています。
その他
この記事内では、実行コマンドの下にコマンドの意味を記載しています。
1-1.Javaが存在しないことの確認
以下のコマンドはJavaのバージョンを確認するためのコマンドですが、今までインストールしたことがないため以下の結果を期待します。
java -version
- 何も表示されない
- エラーメッセージなどバージョンの表記が出ない
実行結果
Command 'java' not found, but can be installed with:
sudo apt install default-jre # version 2:1.25-77, or
sudo apt install openjdk-25-jre-headless # version 25.0.3~7ea-2
:
Java自体がインストールされていないと出ていますが、期待通りなので問題ありません。
2-1.JREとJDK
エラーメッセージにはJREのインストール候補が表示されました。
しかし、今回はJavaプログラムを開発することが目的なのでJDKが必要 になります。
2-2.JREとJDKの違い
JREとJDKは何が違うのか?整理してみました。
- JRE(Java Runtime Environment)はJavaで作られたプログラムを実行するための環境。
- JDK(Java Development Kit)はJavaプログラムを作成・コンパイル・実行するための開発環境。
つまり、動かすにはJREが必要。そして開発するにはJDKが必要になる、ということですね。
3-1.JDKのインストール
では利用可能なJDKを確認していきます。
apt search openjdk | grep jdk
- apt search パッケージ名:インストール可能なパッケージを検索する。
※これだけだとjreなどjdk以外のものも羅列されてしまう。 - |:前のコマンドの結果を次のコマンドへ渡す(読み方は「パイプ」)
- grep オプション 文字列 ファイル名:今回は文字列「jdk」を含む行だけを表示させましたが、様々なオプションがありファイル名を検索することも可能。
実行すると、OpenJDK 11、17、21、25、26など、複数のバージョンが表示されました。
今回は長期サポート版(LTS)であるOpenJDK 21をインストールします。
sudo apt install openjdk-21-jdk
- sudo:管理者権限でコマンドを実行する
- apt install パッケージ名:パッケージをインストールする
インストール中に
Do you want to continue? [Y/n]
と表示されたら、Y を入力してEnterを押します。
3-2.インストール完了確認
OpenJDK 21がインストールできているか確認していきます。
java -version
実行結果は以下のように表示され、インストールが完了しました。
openjdk version "21.0.11"
JDKにはコンパイラのjavacも含まれているため試しに確認してみます。
javac -version
javac 21.0.11
コンパイラもインストールされていることがわかりました。
※なお、パッケージをインストールしているためJREも含まれています。
3-3.javaとjavacの違い
インストールする際にjavaとjavacは何が違うのか?気になったので調べてみました。
- java:コンパイル済みのプログラムを実行するコマンド。
- javac:Javaソースコードをコンパイルするコマンド。
つまりJavaでプログラムを動かすには……
- 人間がjavaでソースコードを書く
- javacが人間が書いたプログラムをコンピューター側が理解できるように.classファイルに変換する=コンパイルする
- javaが実行する
という一連の流れが存在するため、セットで必要になるんですね。
【コラム】コマンドが格納されている場所について
Linuxではコマンドもファイルとして管理されているため、ためしに確認してみます。
which javaとwhich javacのコマンドを実行した結果は以下のとおり。
/usr/bin/java
/usr/bin/javac
- which オプション コマンド名
指定したコマンドが存在する場所をフルパスで表示します。
ただ、オプションを付けない場合、最初に見つかったファイルしか表示されないため、該当するコマンドすべてを知りたい場合は-aオプションを付けると複数表示されます。
まとめ
前回の記事を読んでいただいた方は「あれ?」と思った方もいたかもしれませんね。
私も前回で環境構築が終わった認識だったので「これでゲーム開発できる!」と思っていたのですが、また環境構築でした。(笑)
Javaを動かすための流れを知ることができたり、コマンドが実際に格納されている場所を確認したりできたので、やっていて面白かったですね。
次回はいよいよゲーム開発らしい内容になると思うので、楽しみです。
改めて、どんどん開発していくぞ~!
今回使ったコマンドまとめ
- java -version
→本来はバージョン確認するもの。今回は事前にJavaが存在しないこと・インストール後の確認のために使用 - apt search openjdk | grep jdk
→利用可能なjdkのパッケージの確認 - sudo apt install openjdk-21-jdk
→管理者権限でパッケージのインストールを実行 - javac -version
→パッケージインストール後コンパイラも存在することを確認 - which java
→javaコマンドが存在する場所を確認 - which javac
→javaコマンドが存在する場所を確認