CentOS Stream9にJavaのパッケージをインストールした話
1.実施経緯
会社の案件面談等を実施していく中でJavaによりコードの作成や読み込み、テストが可能であるか実績を聞かれることが多く、未経験の内容であることから学習環境作成のために、CentOS Stream9に対してJavaパッケージをインストールしたもの。
2.手順
(1)前提事項
インストール作業にあたって、rootユーザ権限により実行する内容が多いため、事前にルートユーザでログインして作業することをお勧めします。
(2)パッケージの取得およびインストール
私がインストールするタイミングで最新のJavaのバージョンはOpenJDK22でしたが、パッケージインストールでは取得できませんでした。
そのため、OpenJDK21に下げることで下記のコマンドによりパッケージを取得できたので、そのままインストール確認で「y」を入力してインストールを実行しました。
補足ですが、実行するだけであれば、開発者ツールの「java-21-openjdk-devel」のインストールは不要かと思われます(このあたり確信が持てず申し訳ありません)。
dnf install java-21-openjdk java-21-openjdk-devel
(3)環境変数に関する設定ファイルの作成
そのままではインストールしたJavaの機能を参照できないので環境変数に関する設定ファイルを作成します。
ファイルパスは、下記のとおりです。
/etc/profile.d/java.sh
ファイルの内容は、下記のとおりです。
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which java)))))
export PATH=$PATH:JAVA_HOME/bin
(4)環境変数への反映
下記のコマンドを実行して、環境変数へ反映を行います。
source /etc/profile.d/java.sh
(5)Javaのバージョン確認
下記のコマンドを実行して、コマンドラインにOpenJDKのバージョンが表示されればJavaのソースコードをコンパイルして実行することが出来ます。
java --version
openjdk 20.0.2 2023-07-18 LTS
OpenJDK Runtime Environment (Red_Hat-20.0.2.0.9-1) (build 20.0.2+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-20.0.2.0.9-1) (build 20.0.2+9-LTS, mixed mode, sharing)
(7)hello worldの実行
インストールしたJavaの動作確認に「hello world」を表示できるか試しました。
別途作成したログイン用ユーザによりログインを行い、下記のファイルをコンパイルのうえ実行しました。
ソースコードの配置にあたっては、ワーク用のディレクトリを作成のうえ実施しています。
hello_world.java
public class hello_world {
public static void main(String[] args){
System.out.println("hello world");
}
}
コンパイル用のコマンドは下記のとおりです。
javac ./hello_world.java
生成されるファイルのファイルパスは下記のとおりとなります。
./hello_world.class
ファイル名ですが、ソースコード内に記載したクラス名でコンパイル後のがいるが作成され、拡張子が「class」に置き換わっていました。
当該ファイルの実行コマンドおよび実行結果は下記のとおりです。
java hello_world
hello world
これは、私が初めてJava触るため認識がズレていたのですが、下記のようにコマンドを入力するとクラスが呼び出せないということで失敗になるという学びを得ました。
Java ファイルパス
Javaを普段から使用する方々からしたら当たり前のことかもしれませんが、環境構築を実施して初めて動作させた私にとっては、初めてのことで一つの学びを得ることが出来ました。
3.今回の環境構築で参考にしたサイト
ほかにも様々なサイトや公式リファレンスを確認したうえでインストールを実行しましたが、上記のサイトの情報が一番わかりやすく助かりました。
4.最後に
今後、仕事の案件参画やJavaに関する資格取得を目標に少しずつJavaを勉強を実施していく予定ですが、環境構築の段階で学べることがあり大変よかったです。
あとは、コーディングに向けた環境作りをしっかりしていきたいですが、VScodeでもOpenJDKのインストールを求められてしまうため、どのように対応するか考えたいと思います(Windows上でJavaを動作させる気が皆無のため)。