NetBeans IDEでのJDK 7サポートの概要

NetBeans IDEでは、ダイヤモンド演算子、switch内の文字列、マルチ・キャッチなどの、新しいJDK 7言語機能に対するサポートが導入されました。これらの構造をコード内で使用すると、IDEはそれを認識してコード補完で正しいクラスを提供し、エラーを正しく強調表示して、構文を自動的に修正できるようにします。このように、NetBeans IDEは、ユーザーがJDK 7言語仕様と互換性のあるコードを記述するのに役立ちます。

このチュートリアルでは、IDEでJDK 7サポートを有効にする方法について学習するとともに、新しい言語構造がIDEでどのように処理されるかを確認します。

目次

このページの内容は、NetBeans IDE 7.0および7.1に適用されます

このチュートリアルを完了するには、次の表に示すソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE バージョン7.0および7.1
Java Development Kit (JDK) バージョン7

NetBeans IDEでのJava 7の登録

NetBeans IDEでJDK 7サポートを有効にするには:

  1. JDK 7をダウンロードしてシステムにインストールします。
  2. IDEで、メイン・メニューから「ツール」>「Javaプラットフォーム」を選択します。
  3. 「プラットフォームの追加」をクリックし、JDKを含むディレクトリを指定します(たとえばWindowsでは、これはJDKインストール・ディレクトリであり、デフォルトはC:\Program Files\Java\jdk1.7.0です)。
    Javaプラットフォームを含むディレクトリは、Javaプラットフォーム・アイコンアイコンでマークされています。
  4. 「プラットフォーム名」のステップで、「プラットフォームのソース」のzipファイルとAPIドキュメントのデフォルトの場所が有効であることを確認します。
  5. 「終了」をクリックして「Javaプラットフォームの追加」ダイアログ・ボックスを閉じます。
  6. 「プラットフォーム」リストで「JDK 1.7」が選択されていることを確認し、「閉じる」をクリックします。
ここをクリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.1MB。

注意: 「プラットフォームJavadoc」のAPIのデフォルトの場所は、このWeb URLです。オフラインで使用するために、JavadocのJARファイルをJDK7バイナリ・スナップショットのページからダウンロードし、そのシステム上の場所を指定できます。

JDK 7を使用するためのプロジェクトの構成

IDEでJDK 7を登録したら、このJDKをコンパイル、実行、およびデバッグに使用するようにプロジェクトを構成する必要があります。

  1. Javaプロジェクトを作成します。「ファイル」>「新規プロジェクト」を選択し、プロジェクト・タイプとして「Javaアプリケーション」を選択します。「次」をクリックします。
  2. プロジェクト名として「SwitchTest」と入力し、その場所を指定します。
  3. 「ファイル」ウィンドウで、「SwitchTest」プロジェクトのノードを右クリックし、「プロパティ」>「ライブラリ」を選択します。このタブで、「Javaプラットフォーム」のリストから「JDK 1.7」を選択します。
    JDK 7をターゲット形式として設定。
  4. 「プロジェクト・プロパティ」ウィンドウの「ソース」タブに切り替え、「ソース/バイナリ形式」として「JDK 7」を選択します。
    JDK 7をソース形式として指定
  5. 「OK」をクリックして変更を保存します。プロジェクトが、新しいJDK 7言語機能を認識するように設定されています。
ここをクリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.3MB。

新しいJDK 7言語構造の使用: switch文

JDK 7では、国際化、I/Oやネットワーキング、セキュリティなどを含む様々な領域で、多くの新機能および拡張機能が導入されています。IDEのJavaエディタによるJDK 7サポートを示すための最善の方法は、Project Coinによって導入されたいくつかの言語変更を示すことです。

これらの変更の1つが「switch内のString」です。以前のバージョンのJavaでは、switchの引数は、基本データ型であるbyteshortcharintenumのいずれかのみが許可されていました。JDK 7からは、switch文の式に型Stringの引数を使用できます。

  1. SwitchTest.javaを開き、次のコードを追加します。この小さなサンプルは、いくつかの色のRGBコードを表示します。
    JDK 7では、color変数をStringにすることができます。
    package switchtest;
    
        public class SwitchTest {
    
        public static void main(String[] args) {
    
            String color = "red";
            String colorRGB;
            switch (color.toLowerCase()) {
                case "black": colorRGB = "000000"; break;
                case "red": colorRGB = "ff0000"; break;
                case "green": colorRGB = "008000"; break;
                case "blue": colorRGB = "0000ff"; break;
                default: colorRGB = "Invalid color"; break;
            }
            System.out.println(colorRGB);
            }
        }
    

    貼り付けたコードがエディタで誤ってフォーマットされている場合は、[Alt]-[Shift]-[F]を押して再フォーマットします。

  2. 「ファイル」ウィンドウで、プロジェクトのノードを右クリックし、「実行」を選択します。アプリケーションの出力(赤色のRGBコード)が表示されます。
    ターゲット・プラットフォームとソース形式がJDK 7である場合は、ビルドが成功し、アプリケーションが正常に動作することがわかります。
    プロジェクト実行の出力
  3. 前に戻ってJDK 6を使用し、このアプリケーションがJDK 6コンパイラでどのようにコンパイルされるかをテストしてみます。
    「ファイル」ウィンドウで、プロジェクトのノードを右クリックし、「プロパティ」を選択します。「ライブラリ」タブで「Javaプラットフォーム」を「JDK 1.6」に設定し、「ソース」タブで「ソース形式」オプションを「JDK 6」に設定します。
    JDK6パーサーでこの構文が認識されないことがただちにわかります。互換性のない変数型のためにコンパイルが失敗します。
    プロジェクト実行の出力
  4. ここで、図に示すように、switchのかわりにif-then-else文を使用してコードを書き換えてみます。
    JDK 7がターゲット・プラットフォームであるため、IDEはこのようなケースを認識し、この文をswitch文に変換するよう提案します。
    このヒントをクリックすると、if-then-else構造が、先のコードとまったく同じswitchに自動的に変換されます。
    if-then-elseからswitchへの変換
  5. 別の値を使用してアプリケーションを実行します。
ここをクリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、2.5MB。

JDK 7サポート: その他の例

IDEのJavaエディタがコードをどのように認識し、JDK 7言語仕様に準拠するようにどのように自動的に修正するかを示すために、ここでは、言語の主な機能強化がすべて含まれたダミーのコード・スニペットを使用します。

このダミーのコード・スニペットを調べ、エディタのヒントを適用すると、次を行う方法の例がわかります。

  • 型を明示的に指定しなくてもJavaコンパイラが汎用インスタンスの型を推論できる場合は、自動的な型推論を利用します。型推論のケースにフラグを付けるために、いわゆるダイヤモンド演算子が使用されます。
  • 複数の種類の例外に対して1つのcatchブロックを使用できる場合は、機能強化された例外処理、つまりマルチ・キャッチを使用します。
  • 自動リソース管理機能によって導入された、リソース・クロージャ文の新しい構文を使用します。
  1. 同じSwitchTest.javaファイル内の前のアプリケーション・コードを次に置き換えます
    package switchtest;
    
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    public class SwitchTest {
    
        public void test() throws IOException {
            List<String> list = new ArrayList<String>();
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            HashMap<String, Integer> map2 = new HashMap<String, Integer>();
            String a = "ehlo";
    
            try {
                Method m = Object.class.getMethod("toString");
                m.invoke(this);
            } catch(NoSuchMethodException e) {
                e.printStackTrace();
            } catch(InvocationTargetException e) {
                e.printStackTrace();
            } catch(IllegalAccessException e) {
                e.printStackTrace();
            }
    
            FileInputStream in = null;
            try {
                in = new FileInputStream("foo.txt");
    
                int k;
                while ((k = in.read()) != -1) {
                    System.out.write(k);
                }
            } finally {
                if (in != null) {
                    in.close();
                }
            }
        }
    }
     
  2. このチュートリアルの上に示すように、コードをJDK 7仕様向けに最適化する方法を示す複数のヒントがIDEに表示されます。単純に各ヒントをクリックし、提案されたアクションを選択します。
  3. 最終的に、すべての提案を受け入れると、次に示すJDK 7と互換性のあるコードが得られるはずです。
    変換されたコード・スニペット
ここをクリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.8MB。

次の手順

JDK 7とNetBeans IDEの詳細は、次のドキュメントを参照してください。

NetBeans IDEでのJavaアプリケーションの開発の詳細は、次を参照してください。

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2015, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo