実行環境(JRE) 3Billion devices run java - 萌えJava超入門
Javaクラスライブラリ

実行環境(JRE)

開発環境(JDK)にも、実行環境(JRE)にも、
Javaクラスライブラリが入っています。

JREのインストール画面

目次

1.開発環境と実行環境


萌えJava超入門
めちゃくちゃ今更なんだけど、
Javaの開発環境と実行環境について
話しておきたい。
萌えJava超入門 萌えJava超入門
ほほぅ。


開発環境(JDK)
「Java超入門」で使用してきた JDK (Java Development Kit)は、 Javaの開発環境です。
JDK には実行環境(JRE)が含まれます。

萌えJava超入門
この辺は大丈夫かな?



萌えJava超入門 萌えJava超入門
OK~。


実行環境(JRE)
Javaのプログラムを開発していない人も、Javaのプログラムを実行するためには Javaの実行環境が必要です。
それが JRE (Java Runtime Environment) です。

JRE には、Javaバーチャルマシン (Java virtual machine) と API が含まれています。
この API の部分に含まれているのが、今回ご紹介していきたい Javaクラスライブラリ というわけです。

なお、Javaバーチャルマシンは、
  Java仮想マシン
  Java VM
  JVM
などと呼ばれていますが、どれも同じものです。


重要
  開発環境(JDK)には、実行環境(JRE)が含まれています。
  実行環境(JRE)には、Javaクラスライブラリが入っています。

萌えJava超入門
JDKにもJREにも、Javaクラスライブラリ
入っているということだ。

ちなみに、「Javaをインストールする」と言った場合、ソフトウェア開発に関係が薄い方の場合には JRE を指します。
「Javaと言ったら JDK だろ!」と切れるオッサンがいた場合には、「日本語って難しいっスね。」と受け流しましょう。
どっちも正解です。



2.JavaバーチャルマシンがもたらすJavaの特徴


一般的なコンパイル型言語と、Javaの違いを比較してみましょう。

萌えJava超入門
ここではJavaという言語の特徴について
紹介していきたい。
萌えJava超入門 萌えJava超入門
ハーイ!


一般的なコンパイル型言語の場合
同じソースのプログラムでも、OS や CPU などの環境が変われば、実行ファイルもそれに合わせて変える必要があります。
このため、多くのプログラム言語では、ソースをコンパイルして作成した実行ファイルを、他のパソコンで実行しようとしても、
システム環境が異なると、実行に支障が出ます。

そのため、実行ファイルを公開する場合には、システム環境を指定したり、
ソースファイルを公開して、「使用するパソコンで自分でコンパイルしてね。」とします。

萌えJava超入門
つまり、使用する人は
コンパイルできる程度のスキルが
必要ということですか?
萌えJava超入門
C/C++ は特にね。
Windows用は実行ファイルが
アップロードされてるけど
Linux のは無いってこと多いから
コンパイルが必要なこともあるわ。


Javaの場合
一方 Javaの場合には、コンパイルによって classファイルを作成しますよね。
実は、classファイルは完全な実行ファイルではなく、その途中の「Javaバイトコード」と呼ばれる中間表現にコンパイルされたものです。
Javaバーチャルマシンは、Javaバイトコードを実行するためのソフトウェアです。

Javaバーチャルマシンは、様々なシステム環境に対応したバージョンが提供されていて、
JavaバイトコードはJavaバーチャルマシンを持つ全てのシステムで動作します。

write once, run anywhere
(一度書いてしまえば、どこでも走る)

例えば、Windows で作った classファイルを、Linuxや MacOS のPCで実行したり、
その逆であっても大丈夫です。
32bitマシンも、64bitマシンでも、
x86アーキテクチャのCPUでも、ARMアーキテクチャにも Javaバーチャルマシンが用意されています。

萌えJava超入門
私はやったことは無いけど、
家電製品への組み込みシステムでも
動いているそうだ。
もともとこっちが本命でした。
萌えJava超入門
Raspberry PI (ラズパイ)
ってシングルボードコンピュータも
ARM だけど、ちゃんと動いたわ。

3Billion devices run java
(30億のデバイスがJavaを実行しています。)

萌えJava超入門 萌えJava超入門
地球の人口が
80億人みたいっスね。
萌えJava超入門


3.Javaクラスライブラリの参照


例えば。
System.out.println(”Hello!”);
の様なコードを含む classファイルを別のパソコンにコピーして実行します。
Systemクラスは、Javaクラスライブラリ の java.lang.System.class の事です。

ご参照↓
Java超入門
 第二十一章 コマンドラインから入力する
  Javaクラスライブラリの利用
 3.java.lang はimport免除


でも、作成した classファイルには、java.lang.System.class は含まれていません。

そうです。
実行したパソコンの 実行環境(JRE) の中の Javaクラスライブラリ から java.lang.System.class を参照するのです。

重要
  実行時には JREJavaクラスライブラリを参照しています。


萌えJava超入門 萌えJava超入門 萌えJava超入門
実行するだけなら
JRE だけあれば
十分だ。



お疲れ様でした。




© 2019 awasekagami