Java環境設定用語について

先日パソコンの調子が悪くなり、環境設定を1からし直す機会があった。
その時に分からなかったことが多く、このままではマズイ!!と思ったのでメモ。ついでに色々復習。

🚩JVM (Java Virtual Machine)

javaプログラムはjavaの仮想環境で動いている。イメージとしてはOSの上に乗っかっている感じ。
このJVMjavaプログラムを実行する時にOSにも分かるように変換してくれている。

🚩JRE (Java Runtime Environment)

javaを実行するために必要な環境を整えてくれる。
JREAPIはここに内包されている。ちなみにAPIはクラスライブラリに入っている。

🚩JDK (Java Development Environment)

javaで開発を行うためのツール。JREコンパイラが入っている。
ちなみにEclipseは自身のコンパイラを持っているらしい。

🚩環境変数

環境変数とはOSやログインユーザーごとに設定され、アプリケーションがその値を参照したり設定したり、アプリケーション間で共有するためのものである。

例えば、コマンドプロンプトjavaコンパイルするには以下の方法がある。
> C:/Program Files/Java/jdkのバージョン/bin/javac クラス名.java
しかし毎回毎回このjavac.exeファイルを記述するのは面倒だし、パソコン自身も山ほどあるディレクトリから探し出してくるのは大変そう、、、
そこで環境変数Pathの出番である。

pathに「C:/Program Files/Java/jdkのバージョン/bin/」と設定しておくと、「javac」と打つだけで指定のディレクトリに参照してくれる。
またパソコンもpathに設定してあるパスを優先的に探すため速い動作が望める。

環境変数にはPath以外にも様々な種類があり、その中にClasspathというものがある。
Classpathには、JVMによってコンパイルや実行が行われるとき、対象となるjavaのクラスファイルが入っているディレクトリを指定することができる。

🚩コンパイル

人間が書いたソースコードをコンピュータが理解できる言語に変換すること

🚩リンク

たいていのプログラムは、複数のクラスファイルと関係してできている。
リンクは、コンパイルされたソースファイルの関係を繋げ、一つの実行可能な形態にまとめることを指す。
またこのときライブラリから必要なファイルを取り出し結びつけることもしてくれる。(例えばprintlnなどはクラスライブラリにある)

🚩ビルド

プロジェクト全体のクラスファイルをコンパイルしてリンクを行い実行可能なプログラムを作ること。

🚩ビルドパス

ビルドを行うときに対象となるクラスファイルのクラスパスのこと

🚩Webアプリケーションのディレクトリ構造

Webアプリケーションは以下のようなディレクトリで構成されている。

f:id:mmmnn1257:20170504003406p:plain

このディレクトリ構造をwarファイルとして一つのファイルとして保管しておくことができる。
Tomcatにデプロイする時は、Webappsディレクトリ以下にwarファイルをおく。

🚩Eclipse Javaソースフォルダ

Webプロジェクトに追加されるときにコンパイルされ、自動的にWeb-INFのClassesディレクトリに追加される

🚩Eclipse Javaライブラリフォルダ

Webアプリケーションが参照するサポートライブラリファイル。このフォルダにはlibフォルダの内容が反映されている。しかし物理的には存在しない仮想jarファイルであるため、ここにjarファイルを置くだけではTomcatは反応してくれない。