0
0

More than 3 years have passed since last update.

Javaをインストール

Last updated at Posted at 2021-02-18

はじめに

開発用のOS(Lubuntu)を仮想マシンにインストールできたので、次はJavaをインストールします。
インストール自体は数行で終わってしまいそうなので、現在主流のJavaについて調べてみます。

私がかつて知っているものは、Sun MicrosystemsのJavaとIBM J9です。

備忘録

JREとJDK

既知とは思いますが、一応書いておきます。

JRE:Java Runtime Environment
JDK:Java Development Kit

大きな違いは、JREはJavaを実行する為のもの、JDKはJavaの開発を行う為のものです。
乱暴な言い方をすると、JDKにはコンパイラーが含まれています。

これから、JavaのプログラミングをしてみるのでJDKをインストールします。

バージョン

現在(2021年02月)、最新バージョンは 15 です。
しかし、開発で使うバージョンは 11 の方が多いようです。
これは、LTS(long-term support / 長期サポート)だからだそうです。

JavaのLTSは、バージョン 811 がそれに該当しています。
2021年09月には、バージョン 17 がLTSとして発表されるみたいです。
夏からは 17 が主流になるのかもしれません。

Java - Wikipedia」より

OpenJDK

OpenJDK - Wikipedia

Javaのバージョン 7 以降、OpenJDKで管理されているみたいです。
ソースコード原本を管理しているのは、https://openjdk.java.net/ ←ここみたいです。

  • Oracle JDK
    名称のとおりOracleが配布しているJDKです。
  • AdoptOpenJDK
    いくつかのスポンサーが提供しているJDK、AWS、IBM、Microsoftとかが入っている。
  • Amazon Corretto
    名称のとおり、Amazonが提供しているJDKです。

Amazon(AWS)が、AdoptOpenJDKとAmazon Correttoの両方を提供しているが、Amazon Correttoの方がサポート期間が長くAmazonのパッチが入っているとの事なので、AWSで利用する場合はAmazon Correttoの方が良いのかもしれない。

どちらにせよ、実際に動かすJavaを利用した方が良い気がします。

OpenJDKとAmazon Correttoは、拡張子がdebというdebianパッケージが配布されていますので、それをaptでインストールするみたいです。
AdoptOpenJDKは、tar.gzのアーカイブが配布されていますので、展開してパスを通すことでインストールするみたいです。

インストール

JDK

LubuntuにJDKをインストールします。
aptで管理されているJDKを見てみます。
sudo apt search ^openjdk-.*-jdk$

$ sudo apt search ^openjdk-.*-jdk$
ソート中... 完了
全文検索... 完了  
openjdk-11-jdk/focal-updates,focal-security 11.0.10+9-0ubuntu1~20.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-13-jdk/focal-updates 13.0.4+8-1~20.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-14-jdk/focal-updates 14.0.2+12-1~20.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-8-jdk/focal-updates,focal-security 8u282-b08-0ubuntu1~20.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-11-jdkをインストールします。
sudo apt install openjdk-11-jdk

$ sudo apt install openjdk-11-jdk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libcanberra-gtk3-0 libcanberra-gtk3-module
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java
  libatk-wrapper-java-jni libice-dev libpthread-stubs0-dev libsm-dev libx11-dev
  libxau-dev libxcb1-dev libxdmcp-dev libxt-dev openjdk-11-jdk-headless
  openjdk-11-jre openjdk-11-jre-headless x11proto-core-dev x11proto-dev
  xorg-sgml-doctools xtrans-dev
提案パッケージ:
  default-jre libice-doc libsm-doc libx11-doc libxcb-doc libxt-doc openjdk-11-demo
  openjdk-11-source visualvm fonts-wqy-microhei | fonts-wqy-zenhei
以下のパッケージが新たにインストールされます:
  ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java
  libatk-wrapper-java-jni libice-dev libpthread-stubs0-dev libsm-dev libx11-dev
  libxau-dev libxcb1-dev libxdmcp-dev libxt-dev openjdk-11-jdk
  openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless x11proto-core-dev
  x11proto-dev xorg-sgml-doctools xtrans-dev
アップグレード: 0 個、新規インストール: 21 個、削除: 0 個、保留: 0 個。
267 MB のアーカイブを取得する必要があります。
この操作後に追加で 422 MB のディスク容量が消費されます。
続行しますか? [Y/n] 
取得:1 http://archive.ubuntu.com/ubuntu focal/main amd64 java-common all 0.72 [6,816 B]
取得:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.10+9-0ubuntu1~20.04 [37.3 MB]
取得:3 http://archive.ubuntu.com/ubuntu focal/main amd64 ca-certificates-java all 20190405ubuntu1 [12.2 kB]
:
<中略>
:
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.

インストールできました。
※:ネットワークのせいかかなり時間がかかりました。

バージョンを確認してみます。
java -version

$ java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

Maven

Java用プロジェクト管理ツールであるMavenをインストールします。
似たようなツールとしてGradleがありますが、ちょっと学習コストがかかりそうなので、Mavenを選択しました。
将来的にはGradleも使うかもしれません。

aptで管理されているMavenを見てみます。
sudo apt search ^maven$

$ sudo apt search ^maven$
ソート中... 完了
全文検索... 完了  
maven/focal,focal 3.6.3-1 all
  Java ソフトウェアプロジェクトの管理・包括ツール

インストールします。
sudo apt install maven

$ sudo apt install maven
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libaopalliance-java libapache-pom-java libatinject-jsr330-api-java
  libcdi-api-java libcommons-cli-java libcommons-io-java libcommons-lang3-java
  libcommons-parent-java libgeronimo-annotation-1.3-spec-java
  libgeronimo-interceptor-3.0-spec-java libguava-java libguice-java
  libhawtjni-runtime-java libjansi-java libjansi-native-java libjsr305-java
  libmaven-parent-java libmaven-resolver-java libmaven-shared-utils-java
  libmaven3-core-java libplexus-cipher-java libplexus-classworlds-java
  libplexus-component-annotations-java libplexus-interpolation-java
  libplexus-sec-dispatcher-java libplexus-utils2-java libsisu-inject-java
  libsisu-plexus-java libslf4j-java libwagon-file-java libwagon-http-shaded-java
  libwagon-provider-api-java
提案パッケージ:
  libaopalliance-java-doc libatinject-jsr330-api-java-doc libservlet3.1-java
  libcommons-io-java-doc libcommons-lang3-java-doc libasm-java libcglib-java
  libjsr305-java-doc libmaven-shared-utils-java-doc liblogback-java
  libplexus-cipher-java-doc libplexus-classworlds-java-doc
  libplexus-sec-dispatcher-java-doc libplexus-utils2-java-doc junit4 testng
  libcommons-logging-java liblog4j1.2-java
以下のパッケージが新たにインストールされます:
  libaopalliance-java libapache-pom-java libatinject-jsr330-api-java
  libcdi-api-java libcommons-cli-java libcommons-io-java libcommons-lang3-java
  libcommons-parent-java libgeronimo-annotation-1.3-spec-java
  libgeronimo-interceptor-3.0-spec-java libguava-java libguice-java
  libhawtjni-runtime-java libjansi-java libjansi-native-java libjsr305-java
  libmaven-parent-java libmaven-resolver-java libmaven-shared-utils-java
  libmaven3-core-java libplexus-cipher-java libplexus-classworlds-java
  libplexus-component-annotations-java libplexus-interpolation-java
  libplexus-sec-dispatcher-java libplexus-utils2-java libsisu-inject-java
  libsisu-plexus-java libslf4j-java libwagon-file-java libwagon-http-shaded-java
  libwagon-provider-api-java maven
アップグレード: 0 個、新規インストール: 33 個、削除: 0 個、保留: 0 個。
9,209 kB のアーカイブを取得する必要があります。
この操作後に追加で 12.1 MB のディスク容量が消費されます。
続行しますか? [Y/n] 
取得:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libapache-pom-java all 18-1 [4,720 B]
取得:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 libatinject-jsr330-api-java all 1.0+ds1-5 [5,348 B]
取得:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 libgeronimo-interceptor-3.0-spec-java all 1.0.1-4fakesync [8,616 B]
:
<中略>
:
libmaven3-core-java (3.6.3-1) を設定しています ...
maven (3.6.3-1) を設定しています ...
update-alternatives: /usr/bin/mvn (mvn) を提供するために自動モードで /usr/share/maven/bin/mvn を使います

バージョンを確認します。
mvn -version

$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.10, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "5.8.0-43-generic", arch: "amd64", family: "unix"

まとめ

バージョンなどを調べていたら結構時間がかかってしまいました。
サイトによってはaptで管理されていものではなく、最新版をインストールしたりしていましたが、私の環境では、aptで管理されているものと最新版とかわりがないように見えました。
そもそも、多少のバージョンの差異はしかたないとは思います。

最後の部分は、以下のようにJDKとMavenは同時にインストールした方が良かったかもしれません。
sudo apt install openjdk-11-jdk maven

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0