Java環境構築(Adoptium(旧:AdoptOpenJDK))
概要
Javaの概要とその環境構築と、最後にサンプルのファイル実行について個人の備忘録としてまとめていきます。(2022年5月5日現在)
具体的にはOpenJDKの一つであるAdoptium(旧:AdoptOpenJDK)についてみていきます。
参考
Javaアプリケーションの実行環境
Javaアプリケーションを実行するにはJDK(Java Development Kit)と呼ばれるJavaアプリケーションの実行に必要なソフトウェアをまとめた一式が必要です。
項目 | 内容 |
---|---|
Java SE | などJavaの最もスタンダードなAPIを集めたEditionです。他には家電などの組み込みやモバイルアプリ開発用のJava MEやエンタープライズ用のJava EEがあります。 |
JVM | Java Virtual Machineの略で、Javaプログラムをコンパイルして生成されたJavaクラスファイルを各OSで実行可能な形式に変換して動かすためのプログラムです。 |
JRE | Java Runtime Environmentの略でJava APIとJVMを含むJava実行環境用のソフトウェアです。 |
JDK | Java Development Kitの略で、JREとJavaプログラム用のコンパイラとデバッガなど開発や実行に必要な一式をまとめたソフトウェアです。 |
JDK概要
Javaプログラムの変換フロー
参考
Adoptium
前述のJDKはOpenJDKという形でOracleやコミュニティで開発されています。
そのOpenJDKを元にコミュニティが開発しているのがAdoptiumになります。前身のAdaoptOpenJDKはOpenJDKが複数のプラットフォームに対してオープンで再現性のあるビルドおよびテストシステムの欠如に対してそれを補う目的で開発され、その後プロジェクトの成長に伴い、Eclipse Foundationに移管されました。
旧AdaoptOpenJDKのサイトは維持されたままなので少し戸惑いましたが、FAQページにリダイレクトさせずあえて旧サイトを残している理由が記載されていました。
- まだ一部のユーザーがAdaoptOpenJDKから移行中のため、ユーザーが混乱しないようにと以前のUIを残している
- そしてまだ一部のバージョンではAdoptium上でダウンロードできないため、旧サイトを残している
Eclipse Temurinについて
Adoptiumのダウンロードサイトを訪れると分かりますが、ダウンロードリンクの名前がEclipse Temurin
と表示されています。
OpenJ9 builds(JVM)について
Adoptiumへの移管に伴い、JVMに関してはEclipse OpenJ9のサポートは継続せず、IBM Semeruで引き継がれるようになりました。
Eclipse Temurinのインストール
今回はインストーラーを使ったAdoptiumのダウンロードについてみていきます。
その他に、Package manager、Archive files, Container imagesを使った方式があります。
参考
Adoptiumの公式ダウンロードサイトにアクセスして、次のようにダウンロード環境とJavaバージョンを指定してダウンロードします。
Adoptium公式ダウンロードサイト
Javaの実行
最後にJavaのプログラムを実行してみます。Oracleの公式チュートリアルを参考に、次のようなような内容のファイルを作成します。
/**
* The HelloWorldApp class implements an application that
* simply prints "Hello World!" to standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
このファイルはjavac
コマンドによりJavaクラスファイルにコンパイルします。
$ javac HelloWorldApp.java
最後に、java
コマンドによりファイルを実行します。
$ java HelloWorldApp
するとプログラムに指定の内容通り、次のような実行結果をターミナル上に出力できます。
Hello World!
HelloWorldAppの内容
Hello Worldアプリケーションは三つの主要なコンポーネントからなります。
- ソースコードコンポーネント
- HellowWorldApp class定義
- mainメソッド
ソースコードコンポーネント
ソースコードコンポーネントは前述でみたファイルHelloWorldApp.java
の内容全体になります。
コメントは次のように3種類のタイプで記述できます。
/* text */
The compiler ignores everything from /* to */.
/** documentation */
This indicates a documentation comment (doc comment, for short). The compiler ignores this kind of comment, just like it ignores comments that use /* and */. The javadoc tool uses doc comments when preparing automatically generated documentation. For more information on javadoc, see the Javadoc™ tool documentation .
// text
The compiler ignores everything from // to the end of the line.
HellowWorldApp class定義
Javaのクラスはclass
キーワードを使用して次のように定義できます。
class name {
. . .
}
チュートリアルではクラス名がHelloWorldApp
になっています。
mainメソッド
Javaでは、それぞれのアプリケーションごとに次のようなシグネチャを持つmain メソッドを含む必要があります。
public static void main(String[] args)
- mainメソッドはアプリケーションのエントリーポイントになります。
- mainメソッドは1つの引数(Stringの配列)を受け取ります
- 次のようにファイル実行時にコマンドライン引数として指定することができます
$ java MyApp arg1 arg2
- 次のようにファイル実行時にコマンドライン引数として指定することができます
参考
Discussion