2. Java プログラミング環境

この章では、Java アプリケーションの開発に必要な JDK (Java Development Kit) とその他の開発ツールの使い方についてみてゆきます。Java のプログラミングに最低限必要なものは、JDK とソースファイルを作成するためのテキストエディタの 2 つだけですが、実際の Java アプリケーションは多数のソースファイルから構成されるため、ソースファイルをまとめてコンパイルするためのビルドツールの助けを借りるのが現実的な方法です。

最近では開発に必要なエディタ、コンパイラ、ビルドツール、デバッガなどが一体になった「統合開発環境 (IDE)」が普及し、統合開発環境だけでソースファイルの作成からアプリケーションの実行までのすべてを行うことができます。統合開発環境を使用すると JDK の存在を意識することなくスムーズに開発を行うことができる反面、その裏側で JDK やビルドツールが何をしているのかが見えなくなってしまいます。そこでこの章では、簡単なサンプルを通じて JDK とビルドツールの使い方を説明した上で、主要な統合開発環境について紹介してゆきます。

2.1. JRE と JDK

Java は実行環境である JRE (Java Runtime Environment) と開発環境である JDK (Java Development Kit) に分かれており、それぞれ無償で配布されています。JDK は JRE を含んでいますが、これはすべての Java 実行環境にコンパイラなどの開発ツールが必要とは限らないという考え方によります。標準的なものは Oracle から配布されている Oracle JRE と Oracle JDK ですが、IBM など他ベンダーからも JDK が提供されています。現在流通している JDK はそのほとんどがオープンソース・プロジェクトである OpenJDK をベースに作られています。OpenJDK 自体はソースコードのみでの配布となりますが、Red Hat より OpenJDK のインストーラ (Windows 版および Linux 版) が配布されています。

Oracle JRE/JDK と IBM Java はプロプライエタリ・ライセンスでの配布となっており、再配布や改変の禁止などの条件が課せられています。OpenJDK (Red Hat 版インストーラを含む) はクラスパス例外付き GPLv2 というオープンソース・ライセンスで配布されているため再配布・改変などに制限がありません。

GPLv2 には再配布時に改変した箇所を含むすべてのソースコードを GPLv2 で公開しなければならないという条件があります (ソースコードの添付が望ましいが、ソースコードのありかを示すだけでも良いとされます)。「クラスパス例外付き」とは、JRE/JDK 上で動作するアプリケーションについては GPLv2 の条件は適用されない (ソースコードの公開は不要でライセンスも GPLv2 にする必要がない) ことを意味します。

以下、Oracle JRE/JDK を例にとり、それらに含まれる主なツールについて紹介します。他ベンダーの JDK ではツールの構成に一部相違があります。

2.1.1. JRE (Java Runtime Environment)

JRE は Java アプリケーションの実行に必要な最小限のツールを備えています。JRE に含まれるツールとしては javajjskeytool などがあります。

  • java : Java アプリケーションを起動します。一般に「Java VM」と呼ばれているものはこのツールを指します。JRE のツールでは最も使用頻度が高く、必ず押さえておきたいツールです。なお、Windows 版 JRE にはコマンドプロンプトを起動することなく実行するための javaw.exe が含まれています。
  • jjs : Nashorn エンジンを起動します。Nashorn とは Java VM 上で動作する JavaScript の実行環境です。Java アプリケーションでは Nashorn エンジン経由で JavaScript を実行可能 (その逆も可) ですが、jjs ツールで Nashorn 単体を起動することができます。
  • keytool : 暗号化鍵、X.509 証明書チェーン、および信頼できる証明書を含むキーストア (データベース) を管理します。SSL/TLS 通信のセットアップで使用することがあるかもしれません。

2.1.2. JDK (Java Development Kit)

JDK は Java アプリケーションの開発に必要なツールキットで、JRE が備えるすべてのツールに加え、javacjavadocnative2asciijar などが含まれます。

  • javac : Java のソースファイルを読み取り、クラスファイルにコンパイルします。いわゆる「Java コンパイラ」です。言うまでもなく JDK の中核をなすツールです。
  • javadoc : Javaのソースファイルから、API ドキュメントの HTML ページを生成します。Java のソースコードにはドキュメンテーション・コメント (Javadoc コメント) と呼ばれる特殊なコメントを記述することが可能で、それをもとに API ドキュメントを生成するのが javadoc ツールです。Maven などのビルドツールや統合開発環境は javadoc ツールを自動で実行する機能を持っています。
  • native2ascii : 任意の文字エンコードのファイルを、ASCII 文字と Unicode エスケープ文字で構成されるファイルに変換したり、またはその逆を行います。native2ascii ツールの主な用途はプロパティ・ファイルにおける非 ASCII 文字の利用です。文字エンコードを ISO-8859-1 (Latin-1) にしなければならないプロパティ・ファイルでは、日本語文字などの非 ASCII 文字は Unicode エスケープ文字に変換しなければなりませんが、はじめから Unicode エスケープ文字で記述するのは困難であるため、日本語文字などを含むソース・ファイルを作成して native2ascii ツールで所定の形式に変換する方法を採ります。現在では同等の処理を統合開発環境で肩代わりできるようになったことと、プロパティ・ファイルの仕様が拡張され UTF-8 エンコードを選択すれば直接日本語などの非 ASCII 文字を記述できるようになったため、native2ascii ツールの利用頻度は減少しています。
  • jar : Java Archive (JAR) ファイルを操作します。javac ツールで生成されたクラスファイルなどにメタ情報を含めて ZIP アーカイブしたり、その逆を行います。jar ツールを直接使用する機会はそれほど多くありませんが、Maven などのビルドツールや統合開発環境から呼び出されるツールのため、実際には javac ツールに次いで使用頻度の高いツールです。
  • javapackager : Java アプリケーションから Windows、Mac または Linux の実行可能パッケージ (Windows の場合は .exe) とそのインストーラを作成するツールです。実行可能パッケージには専用の JRE が含まれるため、別途 JRE/JDK を用意することなくアプリケーションを配布できるメリットがあります。当初は javafxpackager という名前の JavaFX (GUI) アプリケーションの配布用ツールとして作られ、その後 Java SE 汎用ツールとして改良され現在に至ります。
  • jcmd : 実行中の Java VM の一覧表示、Java VM の状態や各種診断情報の取得、Java Flight Recorder による Java VM の状態監視などを行うツールです。JDK には古くから様々な監視・診断ツールが含まれていましたが、jcmd ツールはそれらを統合する位置づけのツールとなります。Java Flight Recorder は Oracle の有償サポート契約の下で使用可能となるツールで、GUI 管理ツールである Java Mission Control (jmc ツール) と連携して動作します。
  • jvisualvm : Java アプリケーションのモニタリング、トラブルシューティングおよびプロファイリングを視覚的に行うツールです。JDK の中では数少ない GUI のツールのため実行時の負荷は大きいのですが、Java アプリケーションを視覚的にモニタリングできることによる効果は絶大です。Oracle の有償サポート契約がある場合にはさらに高機能な GUI のモニタリング・ツールである Java Mission Control (jmc ツール) が使用可能となります。

2.2. Java アプリケーション開発の手順

ここからは、JDK と Maven を用いた Java アプリケーションの開発手順について説明します。はじめに JDK のみで開発する方法を示し、続いて JDK と Maven による開発を示します。以下、開発および実行環境が Windows と仮定し、ユーザーのホームディレクトリ (フォルダ) を %USERPROFILE% と表記します。

2.2.1. プロジェクトの作成

まず、%USERPROFILE% 以下に作業ディレクトリを用意します。ここでは workspace という名前のディレクトリにします (これは Eclipse の「ワークスペース」のデフォルトと同じ配置です)。

次にプロジェクトを作成します。プロジェクトとは、アプリケーションのソースファイル、設定ファイル、出力されたクラスファイルなどのリソースをまとめて配置するディレクトリで、ここでは workspace 以下の hello という名前のディレクトリにします (これは Eclipse や Maven の「プロジェクト」と同じ配置、同じ意味合いです)。

プロジェクト内ではソース・ファイルとクラス・ファイルは別のディレクトリに配置すると便利です (Java コンパイラのデフォルトでは、ソース・ファイルと同じディレクトリにクラス・ファイルを出力します)。ここではソースファイルを配置するソース・ディレクトリを hello 以下の src\main\java、クラス・ファイルを配置する出力ディレクトリを hello 以下の target\classes とします (これは Maven のデフォルトのレイアウトに合わせています)。

以下をまとめると次のようになります。

  • 作業ディレクトリ - %USERPROFILE%\workspace
  • プロジェクト - %USERPROFILE%\workspace\hello
  • ソースディレクトリ - %USERPROFILE%\workspace\src\main\java
  • 出力ディレクトリ - %USERPROFILE%\workspace\target\classes

最初に作業ディレクトリを準備し、続けてプロジェクト、ソース・ディレクトリを作成します。

CD %USERPROFILE%
MKDIR workspace

CD workspace
MKDIR hello

CD hello
MKDIR src\main\java

ここまでの段階で、ディレクトリ・ツリーは以下の通りとなっているはずです。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
                 +--main
                      +--java

2.2.2. JDK によるビルド

2.2.2.1. ソースファイルの作成

ソースディレクトリ以下に app という名前のディレクトリを作成し、そこに以下に示すソースファイルを Hello.java という名前で保存します。ソースファイルは UTF-8 エンコーディングで保存します。

package app;

public class Hello {
    public static void main(String... args) {
        System.out.println("Hello, world");
    }
}

ソースファイル作成後のディレクトリ・ツリーは以下のようになります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
                 +--main
                      +--java
                           +--app
                                +--Hello.java

2.2.2.2. コンパイル

javac ツールでソース・ファイルをコンパイルします。

CD %USERPROFILE%\workspace\hello
MKDIR target\classes
javac -cp . -d target\classes -encoding UTF-8 src\main\java\app\Hello.java

javac ツールの書式は以下の通りです。

javac [オプション] <ソース・ファイル>

javacツール のオプションには以下のようなものがあります。

  • -cp classpath - クラス・パスを指定します。複数存在する場合は、Windows では ; (セミコロン)、Linux では : (コロン) で区切ります。省略した場合は . (カレント・ディレクトリ) のみになります。この例では省略時と同じ指定にしています。
  • -d outputDir - 出力ディレクトリを指定します。省略した場合はソース・ファイルと同じディレクトリになります。この例では target\classes に出力するように指定しています。
  • -encoding encoding - ソース・ファイルのエンコーディングをしています。省略時は環境に依存します。現在ではソース・ファイルのエンコーディングに UTF-8 を使用するのが一般的であり、この例でも UTF-8 を指定しています。
  • -source release - ソース・ファイルの Java バージョンを指定します。この値をもとにソース・ファイルの構文チェックが行われます。省略時は 1.8 (Java SE 8) となります。なお、1.5 またはそれ以前のバージョンを指定すると警告が出ます。
  • -target version - 出力するクラス・ファイルが対象とする Java バージョンを指定します。以前のバージョン向けのクラス・ファイルを出力する際に使用されます。省略時は 1.8 (Java SE 8) となります。なお、1.5 またはそれ以前のバージョンを指定すると警告が出ます。

コンパイル完了後のディレクトリ・ツリーは以下のようになります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--target
                 +--classes
                      +--app
                           +--Hello.class

2.2.2.3. 実行 (クラスファイル)

作成したアプリケーションを java ツールで実行するには、-cp オプションでクラス・パスに出力ディレクトリを設定し、main メソッドがあるクラスを指定します。

CD %USERPROFILE%\workspace\hello\target
java -cp classes app.Hello

java ツールの -cp オプションを省略するとカレント・ディレクトリがクラス・パスとみなされるため、上記の実行コマンドは以下のように置き換えることもできます。

CD %USERPROFILE%\workspace\hello\target
CD classes
java app.Hello

2.2.2.4. JAR ファイルの作成

通常、Java アプリケーションでは多数のクラス・ファイルが出力されるため、JAR ファイルにまとめることが多いです。

JAR ファイルを作成するには、以下のように jar ツールを使用します。

CD %USERPROFILE%\workspace\hello\target
jar cf hello.jar -C classes

一般に、JAR ファイルを作成する場合の jar ツールの書式は以下の通りです。

jar cf <JAR ファイル> -C <出力フォルダ>

JAR ファイル作成後のディレクトリ・ツリーは以下のようになります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--target
                 +--classes
                 |    +--app
                 |         +--Hello.class
                 +--hello.jar

2.2.2.5. 実行 (JAR ファイル)

JAR ファイルにアプリケーションのクラスが存在する場合は、java ツールの -cp オプションでクラス・パスに JAR ファイルを設定し、main メソッドが存在するクラスを指定してアプリケーションを実行します。

CD %USERPROFILE%\workspace\hello\target
java -cp hello.jar app.Hello

2.2.2.6. 実行可能 JAR ファイルの作成

JAR ファイルは、メタ情報に main メソッドが存在するクラスを設定することで、直接 JAR ファイルを指定して実行することができます。そのような JAR ファイルを実行可能 JAR ファイルといいます。

実行可能 JAR ファイルを作成するには、まずメタ情報を記述したファイルを用意する必要があります。以下のようなファイルを作成して、manifest.mf と名前を付けて保存します。これをマニフェスト・ファイルと呼びます。

Main-Class: app.Hello

次に、jar ツールでマニフェスト・ファイルを指定して JAR ファイルを作成します。

CD %USERPROFILE%\workspace\hello\target
jar cfm hello.jar manifest.mf -C classes

マニフェスト・ファイルを指定して JAR ファイルを作成する場合の jar ツールの書式は以下の通りです。

jar cfm <JAR ファイル> <マニフェスト・ファイル> -C <出力フォルダ>

実行可能 JAR ファイル作成後のディレクトリ・ツリーは以下のようになります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--target
                 +--classes
                 |    +--app
                 |         +--Hello.class
                 +--manifest.mf
                 +--hello.jar

2.2.2.7. 実行 (実行可能 JAR)

実行可能 JAR ファイルは、以下のように java ツールの -jar オプションを用いて実行することができます。

CD %USERPROFILE%\workspace\hello\target
java -jar hello.jar

もちろん、通常の JAR ファイルと同じように実行することも可能です。

2.2.3. Maven によるビルド

2.2.3.1. pom.xml の作成

このプロジェクトは Maven でそのまま使用できるディレクトリ構成になっています。上記と同じ手順てソースファイル (Hello.java) を作成し、さらに Maven プロジェクトの構成ファイルである pom.xml をプロジェクト hello 以下に作成します。

ここで作成する pom.xml は以下の通りとなります。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>app</groupId>
  <artifactId>hello</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>

ルート要素 project とその属性 (xmlnsxmlns:xsi および xsi:schemaLocation) は固定ですので、必ずこの通りに記述します。それ以外はプログラマが指定します。少なくとも以下の要素については必須です。

要素名 設定値
modelVersion 常に 4.0.0 を設定する
groupId 原則としてパッケージ名と一致させる (この例では app)
artifactId 原則としてプロジェクト名と一致させる (この例では hello)
packaging Java SE のアプリケーションの場合は jar とする
version バージョン番号 (この例では 1.0-SNAPSHOT)

properties 要素には、プロジェクトの各種設定値を指定します。ここでは以下の 3 種類の値を設定しています。

プロパティ名
project.build.sourceEncoding ソース・ファイルのエンコーディングを指定する (この例では UTF-8)
maven.compiler.source javac-source オプションに渡す値、デフォルトは 1.5 (この例では 1.8)
maven.compiler.target javac-target オプションに渡す値、デフォルトは 1.5 (この例では 1.8)

properties 要素は本来任意の項目ですが、Maven のデフォルトが実態とかけ離れているため (javac-source/-target オプションに非推奨の値 1.5 を渡す、など)、ここで設定した 3 種類については常に設定する方が良いでしょう。

pom.xml 作成後のディレクトリ・ツリーは以下の通りとなります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--pom.xml

実は、Maven にはプロジェクトを作成する機能も備わっています。以下のコマンドを実行すると pom.xml を含むプロジェクト hello が作業ディレクトリ以下に作成されます。

CD %USERPROFILE%\workspace
mvn archetype:generate -DgroupId=app -DartifactId=hello -DinteractiveMode=false

作成されたプロジェクトのディレクトリ・ツリーを以下に示します。pom.xml だけでなく、ソース・ディレクトリ、さらにサンプルの App.java とその単体テストである AppTest.java も出力されていることがわかります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |    |    +--java
            |    |         +--app
            |    |              +--App.java
            |    +--test
            |         +--java
            |              +--app
            |                   +--AppTest.java
            +--pom.xml

Maven が出力した pom.xml の内容は以下の通りとなります。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>app</groupId>
  <artifactId>hello</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hello</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

こちらの方が Maven 本来の使い方なのですが、生成されたファイルを見る限り、適切ではない点がいくつか見受けられます。

  • サンプル App.java と単体テスト AppTest.java はおそらく使われないものなので、出力されるだけ無駄になる。
  • pom.xml の要素に過不足がある。nameurl は不要である一方、エンコーディングや Java のバージョンを指定する項目がなく、ソースファイルが正しくコンパイルされない可能性がある。
  • dependencies 要素以下に JUnit の組み込み指定がなされているものの、バージョンが現行の 4.x ではなく、時代遅れとなった 3.8.1 になっている。

Maven によって作成されるプロジェクトは、基にするテンプレート (Archetype といいます) によって決定されるため、優れたテンプレートから作成されたプロジェクトを利用すれば開発生産性は大きく向上します。今回のようにテンプレートを指定しない場合には Java SE 向けのもっとも簡単なサンプルのテンプレートが使用されるのですが、上記のように適切でない点がいくつか存在するため、そのまま使用するのは難しいでしょう。

今回は以上を考慮してプロジェクトと pom.xml を手動で作成しました。なお、Maven プロジェクトは統合開発環境でも作成することが可能で、実際にはそちらの手段の方が多く用いられます。

2.2.3.2. コンパイル

Maven でプロジェクトのコンパイルを行うには、以下のように mvn compile コマンドを使用します。mvn compile はソース・ディレクトリ以下のすべてのソース・ファイルをコンパイル対象とします。

CD %USERPROFILE%\workspace\hello
mvn compile

コンパイル完了後のディレクトリ・ツリーは以下のようになります。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--target
            |    +--classes
            |         +--app
            |              +--Hello.class
            +--pom.xml

2.2.3.3. 実行 (クラスファイル)

作成したアプリケーションを java ツールで実行するには、-cp オプションでクラス・パスに出力ディレクトリを設定し、main メソッドがあるクラスを指定します。

CD %USERPROFILE%\workspace\hello\target
java -cp classes app.Hello

java ツールの -cp オプションを省略するとカレント・ディレクトリがクラス・パスとみなされるため、上記の実行コマンドは以下のように置き換えることもできます。

CD %USERPROFILE%\workspace\hello\target
CD classes
java app.Hello

2.2.3.4. JAR ファイルの作成

Maven で JAR ファイルを作成するには、mvn package コマンドを使用します。コンパイルが実行されていないか、もしくはソースファイルが変更されて再コンパイルが必要な場合には、自動的に mvn compile コマンドが実行されます。

CD %USERPROFILE%\workspace\hello
mvn package

JAR ファイル作成後のディレクトリ・ツリーは以下のようになります。JAR ファイル名が artifactId + version となっている点に注目してください。Maven ではこのような命名規則を用いることで JAR ファイルのバージョン管理を行う仕組みになっています。

%USERPROFILE%
  +--workspace
       +--hello
            +--src
            |    +--main
            |         +--java
            |              +--app
            |                   +--Hello.java
            +--target
            |    +--classes
            |    |    +--app
            |    |         +--Hello.class
            |    +--hello-1.0-SNAPSHOT.jar
            +--pom.xml

2.2.3.5. 実行 (JAR ファイル)

JAR ファイルに格納したアプリケーションを java ツールで実行するには、-cp オプションでクラス・パスに JAR ファイルを設定し、main メソッドがあるクラスを指定します。

CD %USERPROFILE%\workspace\hello\target
java -cp hello-1.0-SNAPSHOT.jar app.Hello

2.2.3.6. 実行可能 JAR ファイルの作成

Maven で実行可能 JAR ファイルを作成するには、pom.xml に必要事項の追記が必要になります。記述量は多いですが、ほぼ定型句のため使い回しが効きます。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>app</groupId>
  <artifactId>hello</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <!-- ここから追加 -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>app.Hello</mainClass><!-- main メソッドが存在するクラス -->
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <!-- ここまで追加 -->
</project>

pom.xml の記述が異なることを除いて、ビルド手順は通常の JAR ファイルの作成と全く同じです。

2.2.3.7. 実行 (実行可能 JAR)

実行可能 JAR ファイルは、以下のように java ツールの -jar オプションを用いて実行することができます。

CD %USERPROFILE%\workspace\hello\target
java -jar hello-1.0-SNAPSHOT.jar

もちろん、通常の JAR ファイルと同じように実行することも可能です。

2.3. 統合開発環境 (IDE)

統合開発環境 (IDE) は、開発に必要なエディタ、コンパイラ、ビルド・ツール、デバッガなどが一体になったツールです。統合開発環境は以下のような特徴を持っており、Java アプリケーション開発には欠かせないツールとなっています。

  • エディタがプログラミング向けに最適化されている。
    • カット/コピー & ペースト、正規表現に対応した検索・置換、選択範囲指定、カーソルのジャンプなどの基本機能は一通り備わっている。
    • 構文ハイライト表示が行われるためソースコードが読みやすい。
    • 構文チェック機能が備わっており、文法エラーをリアルタイムに通知することができる。
    • 途中まで入力されたキーワードを補完したり、候補となるものを一覧から選択できる。
  • 逐次コンパイルがサポートされ、ソース・ファイルを保存されると即座にクラス・ファイルの出力が行われる。
    • コンパイル・エラーが発生した場合はすぐにエディタに通知し、エラー個所などを知らせることができる。
    • 特別なビルドを行う必要がなければ、すぐにアプリケーションを実行することが可能である。
  • Ant、Maven などのビルド・ツールが組み込まれている。
    • ビルド・ツールの初期化 (プロジェクトの作成など) を統合開発環境のウィザード画面から行うことができる。
    • エディタからビルド・ツールを起動することができる。
    • エディタでビルド・ツールの設定ファイルを編集可能で、構文チェックも行われる。
  • 高機能なデバッガを持ち、プログラムに特別なデバッグ・コードを埋め込まなくても、リアルタイムでデバッグが可能である。
  • バージョン管理システム (Git、Subversion) との連携がサポートされており、エディタからバージョン管理システムの操作 (チェックアウト、コミット、差分比較など) を行うことができる。

現在主に利用されている Java の統合開発環境には、Eclipse、NetBeans、IntelliJ IDEA があります。

  • Eclipse は IBM 製の統合開発環境をオープンソース化したもので、現在は Eclipse Foundation 配下で開発が行われています。モジュール化が徹底されており、ほとんどの機能がプラグインとして実現されているのが大きな特徴です。現在では開発対象ごとに公式プラグインを整理した形で配布が行われています。GUI の一部にプラットフォーム・ネイティブのコードを含み、登場当初は他の Pure Java の統合開発環境と比較して非常に軽快な動作でも注目を浴びました。
  • NetBeans は Apache Foundation 配下で開発されているオープンソースの統合開発環境で、かつて Sun や Oracle が開発主体であったことから、実質的に Java のオフィシャルな統合開発環境として認知されています。Pure Java のツールで、操作性に癖もなく、プラットフォームを問わず多くのユーザーに利用されています。標準で日本語化されているのも大きな特徴です。Oracle SQL Developer の最新版は NetBeans がベースとなっています。
  • IntelliJ IDEA は JetBrains が販売している統合開発環境です。機能限定版はオープンソース化されています。先進的で多機能な統合開発環境であり、大規模アプリケーションのビルドも問題なくこなすヘビーデューティーなツールでもあります。一癖あると言われる操作性も使い込むほど手に馴染み、有償でありながら多くのユーザーが Eclipse から移行しているようです。Pepper の開発環境として追加される Android Studio は IntelliJ IDEA がベースとなっています。

results matching ""

    No results matching ""