Javaには、Java Servlet/JSP/JavaFXなどがあり、他方、Javaアプリケーションをブラウザ上で実行する技術やそのプログラムとしてJava Appletがありますが、それぞれインストールや環境構築が必要なケースがあります。
このページでは、必要な開発パッケージ、開発環境や実行環境の選択(とインストール)、インストール後の確認方法について見ていきます。
Javaの開発環境は、いくつかあります。
Java開発環境タイプ | 用途 |
---|---|
Java EE SDK | Java EEサーバを介したインターネット、イントラネットWebシステム |
Java SE SDK | WebサーバまたはローカルJavaサーバを介したJSPをCGIとしたWebシステム |
Java ME SDK | 情報家電等組み込み系・ケータイ/PDAなどモバイルアプリケーション |
JDK | Javaコンパイラ/コンパイル環境 |
まず、EE/SE/MEという用途に応じた分類があります(過去のバージョン表記ではJ2EE/J2SE)。
通称・略記 | 開発環境 |
---|---|
Java EE | Java Platform, Enterprise Edition |
Java SE | Java Platform, Standard Edition |
Java ME | Java Platform, Micro Edition |
Enterpriseとは、事業や企業を、Enterprise Systemとは、特に大規模な法人業務をIT化したシステムを指し、Javaにおいては、これらに対応するのが、Java SEを機能拡張したJava EEです。
Standardとは標準ということですが、オブジェクト指向言語であり、Webアプリケーションに対応するJavaにおいては中小規模~個人まで幅広く対応するのが、JavaSEです。
よってJava EEは、インターネットを介したWebサーバ、WAN/LANによるエクストラネット/イントラネットを介した社内サーバ(団体・法人など組織内)におけるWebシステム、Java SEは、インターネット上のWebサーバを介したCGI、または、ローカル環境でのJavaサーバによるWebシステムというイメージと考えていいでしょう。
Java MEはエミュレータを備えた組み込み系・モバイルアプリケーションに対応するものです。
次に開発可能な環境によってSDK/JDKの2通りがあります。
通称・略記 | 意味 |
---|---|
SDK | Software Development Kit |
JDK | Java Development Kit |
SDKは、Webアプリケーション開発を含むフルスペックの開発環境パッケージ、JDKは、Javaプログラミングを行う為の最小限パッケージ、つまり、Javaコンパイラです。
Java Appletもそうですが、開発用途ではなくJavaで作られたアプリケーションを実行するだけならランタイム環境(JRE/Java Runtime Environment)があればOKです。
通称 | 名称 | 用途 |
---|---|---|
JRE | Java Runtime Environment | 「Javaアプリケーションを実行する為の環境」 |
尚、開発環境であるSDK/JDKにはJREも含まれており、そのJREにはAPIやツールチップ、JVMが含まれています。
尚、前述のように開発環境タイプから見る方がわかりやすいかもしれませんが、若干強引にJavaの種類からインストールまたは準備する必要のある環境を見るとこのようになると思われます。
各種Java | 主に必要な環境 |
---|---|
Java Servlet/JSP/Java | Java EE サーバ |
Java EE SDK | |
JSP/Java | Javaサーバ |
Java SE SDK(Java EE SDK) | |
Java | JDK |
Java Applet | JRE |
JavaFX | JavaFX SDK |
JavaFX Runtime | |
JavaFX 2.0 | JRE |
各種インストールパッケージは、OSごとに用意されており、更にはインストールマシンが32bit(x86)か64bit(x64)かによって異なる場合があり、インストールする前に注意、確認が必要です。
Javaサーバには大きく2種類あります。
現行Javaサーバ | 用途 |
---|---|
Javaサーバ | JSPによるCGIアプリケーション用 |
Java EE x サーバ (旧J2EEサーバ) | Java Servlet、JSP、EJB/Enterprise JavaBeansを使ったWebアプリケーション用 |
EJB/Enterprise JavaBeansは、SE仕様のJavaBeansを機能拡張し、ネットワーク分散型ビジネスアプリケーションにおけるサーバサイドプログラミングを可能とする仕様とその実装です。
Javaサーバ | 備考 |
---|---|
Tomcat | Apacheプロジェクトのオープンソース |
...etc. |
Java EE x サーバ (旧J2EEサーバ) | 備考 |
---|---|
JBoss | オープンソース |
GlassFish | オープンソース |
Sun Java Application Server PE | Sun Microsystemsの無償版(有償版あり) |
...etc. |
GUI環境でJavaによる開発を行う場合には、Java用のnetBeans、汎用的なIBM製のEclipseといった統合開発環境(IDE/Integrated Development Environment)があります。
Java GUI開発環境 | 対応言語 | 備考 |
---|---|---|
netBeans | Java/Java系 | Sun Microsystems社製 |
Eclipse | 汎用 | IBM社製 |
ちなみにスマートフォン(スマホ)用OSであるGoogle Androidのアプリ開発環境SDKもJavaで作られています。
Android SDKを実行する為にはJDKが必須で、別途JDKまたはJDKを包含するパッケージが必要です。
Eclipse用プラグインとしてADT Plugin for Eclipseもあります。
Android開発環境にはNDK/Native Development Kitも用意されており、これはC/C++でのチューニングを可能とするものです。
Java環境をインストールした後、JDKならCUIで、SDKならCUI/GUIで確認することができます。
CUIならjava/javacを調べることで確認することができ、もちろんCUI/GUI問わず、簡単なプログラムを作成、コンパイル、実行することによって確認しても構いません。
尚、JavaFX SDKをインストールする場合には、netBeansを併せてインストールすると何かと便利でインストール状況はnetBeansを起動して動作確認できればOK、AppletはHTML/XHTMLタグで組み込んだらブラウザで確認できます。
CUIの場合(Windowsのコマンドプロンプト含む) | GUIの場合 |
---|---|
prompt> java -version | netBeansを起動 |
prompt> javac -version |
UNIX/Linux/Mac OS X/Cygwin...etc. |
---|
prompt> which java prompt> whereis java ...etc. |
prompt> which javac prompt> whereis javac ...etc. |
それぞれバージョンが表記されればOK、そうでなければインストールされていないと考えてよく、その場合はインストールします。
$ ls
HelloWorld.java
$ cat HelloWorld.java
// ファイル名とclass名は同じ名前にする
public class HelloWorld {
public static void main (String args[]) {
System.out.println("Hello World !!");
}
}
$ javac HelloWorld.java
$ ls
HelloWorld.class HelloWorld.java
$ java HelloWorld
Hello World !!
次にお決まりのHello World!!など簡単なプログラム(.javaファイル)をjavacでバイトコードにコンパイルして.classファイルが生成され、.class拡張子のないファイル名をjavaコマンドで実行できれば、これ以上特に設定する必要はありません。
一方、本来はこれ以上設定は不要のはずですが、もし、プログラム自体のエラーではなくプリコンパイル・コンパイルでリンクに失敗するといったエラーがある場合には、コマンドラインで-classpathオプションに続けてパスを渡すか、環境変数CLASSPATHを設定することでとりあえず、それらのエラーを解消することができる場合があります。
環境変数CLASSPATHには、SDKやJDK、それに含まれるJREのlib関連パスを、更に独自に置いたクラスファイルパスがある場合には、それも設定します。
尚、JAVA_HOMEは必須ではありませんが、Java以外のアプリケーションが参照する可能性、他の環境変数への流用における利便性からjavaの実行ファイルパス指定して登録することもできます。
ちなみに先のバージョン確認やパス確認でjava/javacの存在が確認できる場合には、環境変数PATHに必要な設定が追加されている(PATHが通っている)わけですが、そこに登録されるのはSDK/JDKパス内のbinディレクトリにある実行ファイルパスです。
gcjファイル生成オプション | ||
---|---|---|
オプション | 生成ファイル | |
-C | .class/バイトコードファイル | |
-c | .o/オブジェクトファイル | gcc同様 |
-o | 実行形式ファイル | |
-S | .s/アセンブリファイル |
また、GNUツールがインストールされていれば、gcjコマンドを利用してコンパイルできる可能性もありますが、必ずしもJava Platformとの互換性があるとは限りません。
gcjコマンドは、コマンドラインオプション及び生成するファイル共にgccと同じようにコンパイルすることが可能です。
$ jdb HelloWorld
JavaのデバッガにはJVM上で機能するjdbがあり、CUIでの起動はjdbコマンドの引数としてJavaクラスファイル(バイトコード)の拡張子.classをとったファイル名を渡します。