UbuntuにJavaをインストール
UbuntuにJavaをインストールする手順をメモしました。
OSは"Ubuntu 20.04.2"です。
どのJavaをインストールするか
JavaにはJava実行環境であるJRE(Java Runtime Environment)と、開発環境のJDK(Java Development Kit)があり、開発環境(JDK)には実行環境(JRE)も含まれます。 ここでは開発環境のうちGPLライセンスで配布されているOpenJDKをインストールします。
2021年5月22日現在、OpenJDKのページhttps://openjdk.java.net/を見るとJDK 16が最新のようなのでこれを使用します。
JDK16をインストールする
aptコマンドでインストールします。 “openjdk-16"で検索してみると以下のようなパッケージを見つけました。
$ apt --names-only search 'openjdk-16'
ソート中... 完了
全文検索... 完了
openjdk-16-dbg/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
Java runtime based on OpenJDK (debugging symbols)
openjdk-16-demo/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
Java runtime based on OpenJDK (demos and examples)
openjdk-16-doc/focal-updates,focal-updates,focal-security,focal-security 16.0.1+9-1~20.04 all
OpenJDK Development Kit (JDK) documentation
openjdk-16-jdk/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
OpenJDK Development Kit (JDK)
openjdk-16-jdk-headless/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
OpenJDK Development Kit (JDK) (headless)
openjdk-16-jre/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
OpenJDK Java runtime, using Hotspot JIT
openjdk-16-jre-headless/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-16-jre-zero/focal-updates,focal-security 16.0.1+9-1~20.04 amd64
Alternative JVM for OpenJDK, using Zero
openjdk-16-source/focal-updates,focal-updates,focal-security,focal-security 16.0.1+9-1~20.04 all
OpenJDK Development Kit (JDK) source files
openjdk-16-jdkにheadlessと付いているものはサーバー向けで、GUIなどの機能が省略されているようです。
とりあえずopenjdk-16-jdk
をインストールします。
$ sudo apt update
$ sudo apt install openjdk-16-jdk
JREのバージョンを確認します。
$ java -version
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment (build 16.0.1+9-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 16.0.1+9-Ubuntu-120.04, mixed mode, sharing)
JDKのバージョンを確認します。
$ javac -version
javac 16.0.1
環境変数を設定する
Javaアプリケーションによって使われる環境変数を設定します。
JAVA_HOME
はJDKをインストールしたフォルダを設定します。
update-alternatives
コマンドで確認することができます。
$ sudo update-alternatives --config java
リンクグループ java に 1 つの alternative のみがあります (/usr/bin/java が提供):
/usr/lib/jvm/java-16-openjdk-amd64/bin/java
設定は行いません。
環境変数を設定するファイルは、共通して定義する場合は”/etc/environment"に、ユーザーごとに定義する場合は"~/.bashrc"に定義します。 パスの"/bin/java"は含めずにファイルに保存します。
今回は"/etc/environment"ファイルの最後に以下の1行を追加しました。
JAVA_HOME="/usr/lib/jvm/java-16-openjdk-amd64"
現在のセッションに変更を反映させます。
$ source /etc/environment
Javaファイルをコンパイルする
さっそくJavaソースファイルをコンパイルして実行してみます。 以下のように"Main.java"ファイルを作成します。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
// 現在日時を出力する
public class Main {
public static void main(String[] args) throws Exception {
LocalDateTime dt = LocalDateTime.now();
DateTimeFormatter fm =
DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒SSSミリ秒 E曜日");
String ima = fm.format(dt);
System.out.print("現在日時:");
System.out.println(ima);
}
}
javac
でコンパイルするとMain.class
ファイルが出力されます。
$ javac Main.java
$ ls -l
合計 40
-rw-rw-r-- 1 izumi izumi 860 5月 23 15:33 Main.class <<< javaコンパイル結果
-rw-rw-r-- 1 izumi izumi 491 5月 23 15:33 Main.java <<< Javaソースファイル
出力されたclassファイルはjava
コマンドで実行することができます。
$ java Main
現在日時:2021年05月23日 15時34分35秒572ミリ秒 日曜日