| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- |
| Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. |
| --> |
| |
| <html> |
| <head> |
| <title>NetBeans IDEでのJDK 7サポートの概要</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| <meta name="KEYWORDS" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION"> |
| |
| <meta name="description" content="A short guide to using JDK 7 features in NetBeans IDE. Also includes information on setting the JDK."/> |
| </head> |
| |
| <body> |
| |
| <h1>NetBeans IDEでのJDK 7サポートの概要</h1> |
| <p>NetBeans IDEでは、ダイヤモンド演算子、switch内の文字列、マルチ・キャッチなどの、新しいJDK 7言語機能に対するサポートが導入されました。これらの構造をコード内で使用すると、IDEはそれを認識してコード補完で正しいクラスを提供し、エラーを正しく強調表示して、構文を自動的に修正できるようにします。このように、NetBeans IDEは、ユーザーがJDK 7言語仕様と互換性のあるコードを記述するのに役立ちます。 </p> |
| <p>このチュートリアルでは、IDEでJDK 7サポートを有効にする方法について学習するとともに、新しい言語構造がIDEでどのように処理されるかを確認します。 </p> |
| <p><b>目次</b></p> |
| <img alt="このページの内容は、NetBeans IDE 7.0および7.1に適用されます" class="stamp" src="../../../images_www/articles/70/netbeans-stamp-70-71.png" title="このページの内容は、NetBeans IDE 7.0および7.1に適用されます"> |
| <ul class="toc"> |
| <li><a href="#add" title="プロジェクトの設定">NetBeans IDEでのJava 7の登録</a></li> |
| <li><a href="#project">JDK 7を使用するためのプロジェクトの構成</a></li> |
| <li><a href="#switch">新しいJDK 7言語構造の使用: switch文</a></li> |
| <li><a href="#more">JDK 7サポート: その他の例</a></li> |
| <li><a href="#nextsteps" title="次の手順">次の手順</a></li> |
| </ul> |
| |
| <p><b>このチュートリアルを完了するには、次の表に示すソフトウェアとリソースが必要です。</b></p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">ソフトウェアまたはリソース</th> |
| <th class="tblheader" scope="col">必須バージョン</th> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://www.netbeans.org/downloads/index.html">NetBeans IDE</a></td> |
| <td class="tbltd1">バージョン7.0および7.1</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit (JDK)</a></td> |
| <td class="tbltd1">バージョン7</td> |
| </tr> |
| </tbody> |
| </table> |
| <h2><a name="add"></a>NetBeans IDEでのJava 7の登録 </h2> |
| <!--<p>Before the official release of Java™ Platform, Standard Edition 7, you can obtain the JDK 7 source code and development builds from the <a href="http://openjdk.java.net/projects/jdk7" target="_blank">OpenJDK Project</a> website. </p>--> |
| <p><strong>NetBeans IDEでJDK 7サポートを有効にするには:</strong></p> |
| <ol> |
| <li>JDK 7をダウンロードしてシステムにインストールします。</li> |
| <li>IDEで、メイン・メニューから「ツール」>「Javaプラットフォーム」を選択します。</li> |
| <li>「プラットフォームの追加」をクリックし、JDKを含むディレクトリを指定します(たとえばWindowsでは、これはJDKインストール・ディレクトリであり、デフォルトは<tt>C:\Program Files\Java\jdk1.7.0</tt>です)。<br>Javaプラットフォームを含むディレクトリは、<img alt="Javaプラットフォーム・アイコン" src="../../../images_www/articles/70/java/javase-jdk7/platform.gif">アイコンでマークされています。 </li> |
| <li>「プラットフォーム名」のステップで、「プラットフォームのソース」のzipファイルとAPIドキュメントのデフォルトの場所が有効であることを確認します。 </li> |
| <li>「終了」をクリックして「Javaプラットフォームの追加」ダイアログ・ボックスを閉じます。</li> |
| <li>「プラットフォーム」リストで「JDK 1.7」が選択されていることを確認し、「閉じる」をクリックします。</li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/register-jdk7.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td><a href="http://bits.netbeans.org/media/register-jdk7.swf">ここを</a>クリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.1MB。</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <p class="notes"><strong>注意</strong>: 「プラットフォームJavadoc」のAPIのデフォルトの場所は、この<a href="http://download.java.net/jdk7/docs/" target="_blank">Web URL</a>です。オフラインで使用するために、JavadocのJARファイルを<a href="http://dlc.sun.com.edgesuite.net/jdk7/binaries/index.html" target="_blank">JDK7バイナリ・スナップショットのページ</a>からダウンロードし、そのシステム上の場所を指定できます。 </p> |
| <h2><a name="project"></a>JDK 7を使用するためのプロジェクトの構成</h2> |
| <p>IDEでJDK 7を登録したら、このJDKをコンパイル、実行、およびデバッグに使用するようにプロジェクトを構成する必要があります。 </p> |
| <ol> |
| <li>Javaプロジェクトを作成します。「ファイル」>「新規プロジェクト」を選択し、プロジェクト・タイプとして「Javaアプリケーション」を選択します。「次」をクリックします。</li> |
| <li>プロジェクト名として「<tt>SwitchTest</tt>」と入力し、その場所を指定します。 </li> |
| <li>「ファイル」ウィンドウで、「<tt>SwitchTest</tt>」プロジェクトのノードを右クリックし、「プロパティ」>「ライブラリ」を選択します。このタブで、「Javaプラットフォーム」のリストから「JDK 1.7」を選択します。<br><img alt="JDK 7をターゲット形式として設定。" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/props-libs.png"></li> |
| <li>「プロジェクト・プロパティ」ウィンドウの「ソース」タブに切り替え、「ソース/バイナリ形式」として「JDK 7」を選択します。<br><img alt="JDK 7をソース形式として指定" class="margin-around" src="../../../images_www/articles/70/java/javase-jdk7/props-sources.png"></li> |
| <li>「OK」をクリックして変更を保存します。プロジェクトが、新しいJDK 7言語機能を認識するように設定されています。<br> |
| </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/configuring-project-jdk7.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td><a href="http://bits.netbeans.org/media/configuring-project-jdk7.swf">ここを</a>クリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.3MB。</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| |
| <h2><a name="switch"></a>新しいJDK 7言語構造の使用: switch文</h2> |
| <p>JDK 7では、国際化、I/Oやネットワーキング、セキュリティなどを含む様々な領域で、多くの<a href="http://openjdk.java.net/projects/jdk7/features/" target="_blank">新機能および拡張機能</a>が導入されています。IDEのJavaエディタによるJDK 7サポートを示すための最善の方法は、Project Coinによって導入されたいくつかの言語変更を示すことです。 </p> |
| <p>これらの変更の1つが「switch内のString」です。以前のバージョンのJavaでは、<tt>switch</tt>の引数は、基本データ型である<tt>byte</tt>、<tt>short</tt>、<tt>char</tt>、<tt>int</tt>、<tt>enum</tt>のいずれかのみが許可されていました。JDK 7からは、<tt>switch</tt>文の式に型<tt>String</tt>の引数を使用できます。 </p> |
| <ol> |
| <li><tt>SwitchTest.java</tt>を開き、次のコードを追加します。この小さなサンプルは、いくつかの色のRGBコードを表示します。<br> JDK 7では、<tt>color</tt>変数を<tt>String</tt>にすることができます。 |
| <pre class="examplecode">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); |
| } |
| } |
| </pre> |
| |
| <p class="tips">貼り付けたコードがエディタで誤ってフォーマットされている場合は、[Alt]-[Shift]-[F]を押して再フォーマットします。</p> |
| </li> |
| <li>「ファイル」ウィンドウで、プロジェクトのノードを右クリックし、「実行」を選択します。アプリケーションの出力(赤色のRGBコード)が表示されます。<br>ターゲット・プラットフォームとソース形式がJDK 7である場合は、ビルドが成功し、アプリケーションが正常に動作することがわかります。<br><img alt="プロジェクト実行の出力" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/output.png"></li> |
| <li>前に戻ってJDK 6を使用し、このアプリケーションがJDK 6コンパイラでどのようにコンパイルされるかをテストしてみます。<br>「ファイル」ウィンドウで、プロジェクトのノードを右クリックし、「プロパティ」を選択します。「ライブラリ」タブで「Javaプラットフォーム」を「<tt>JDK 1.6</tt>」に設定し、「ソース」タブで「ソース形式」オプションを<tt>「JDK 6」</tt>に設定します。<br> JDK6パーサーでこの構文が認識されないことがただちにわかります。互換性のない変数型のためにコンパイルが失敗します。<br><img alt="プロジェクト実行の出力" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/error.png"></li> |
| <li>ここで、図に示すように、<tt>switch</tt>のかわりに<tt>if-then-else</tt>文を使用してコードを書き換えてみます。<br> JDK 7がターゲット・プラットフォームであるため、IDEはこのようなケースを認識し、この文を<tt>switch</tt>文に変換するよう提案します。<br>このヒントをクリックすると、<tt>if-then-else</tt>構造が、先のコードとまったく同じ<tt>switch</tt>に自動的に変換されます。<br><img alt="if-then-elseからswitchへの変換" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/convert.png"></li> |
| <li>別の値を使用してアプリケーションを実行します。 </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/jdk7-switch-statement.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td><a href="http://bits.netbeans.org/media/jdk7-switch-statement.swf">ここを</a>クリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、2.5MB。</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <h2><a id="more" name="more"></a>JDK 7サポート: その他の例</h2> |
| <p>IDEのJavaエディタがコードをどのように認識し、JDK 7言語仕様に準拠するようにどのように自動的に修正するかを示すために、ここでは、言語の主な機能強化がすべて含まれたダミーのコード・スニペットを使用します。 </p> |
| <p>このダミーのコード・スニペットを調べ、エディタのヒントを適用すると、次を行う方法の例がわかります。 </p> |
| <ul> |
| <li>型を明示的に指定しなくてもJavaコンパイラが汎用インスタンスの型を推論できる場合は、自動的な型推論を利用します。型推論のケースにフラグを付けるために、いわゆる<em>ダイヤモンド演算子</em>が使用されます。 </li> |
| <li>複数の種類の例外に対して1つの<tt>catch</tt>ブロックを使用できる場合は、機能強化された例外処理、つまり<em>マルチ・キャッチ</em>を使用します。<br> |
| </li> |
| <li>自動リソース管理機能によって導入された、リソース・クロージャ文の新しい構文を使用します。 </li> |
| </ul> |
| <ol> |
| <li>同じ<tt>SwitchTest.java</tt>ファイル内の前のアプリケーション・コードを次に置き換えます<br> |
| <pre class="examplecode"> |
| 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(); |
| } |
| } |
| } |
| } |
| </pre> |
| </li> |
| <li>このチュートリアルの上に示すように、コードをJDK 7仕様向けに最適化する方法を示す複数のヒントがIDEに表示されます。単純に各ヒントをクリックし、提案されたアクションを選択します。<br> |
| </li> |
| <li>最終的に、すべての提案を受け入れると、次に示すJDK 7と互換性のあるコードが得られるはずです。<br><img alt="変換されたコード・スニペット" class="margin-around b-all" src="../../../images_www/articles/70/java/javase-jdk7/converted.png"><br> |
| </li> |
| </ol> |
| <table> |
| <tr> |
| <!-- Start Embed Video --> |
| <td class="valign-top" class="align-center" width="480" > |
| <embed src="http://bits.netbeans.org/media/jdk7-examples.swf" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true" autoplay="false" controller="true" scale="aspect"></embed> |
| <td><a href="http://bits.netbeans.org/media/jdk7-examples.swf">ここを</a>クリックするとフルサイズを表示、[Ctrl]を押しながらクリックするとダウンロード、1.8MB。</td> |
| <!-- End Embed Video --> |
| </tr> |
| </table> |
| <div class="indent"></div> |
| <!--<br>--> |
| <div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback: JDK 7 Support in NetBeans IDE 7.0: A Quick Overview">ご意見をお寄せください</a></div> |
| <br style="clear:both;" /> |
| <h2><a name="nextsteps"></a>次の手順</h2> |
| <p>JDK 7とNetBeans IDEの詳細は、次のドキュメントを参照してください。 </p> |
| <ul> |
| <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB70#JDK7_support" target="_blank">7.0の新機能と注目すべき機能</a> - NetBeans IDEで実装された機能に関する詳細。</li> |
| <li><a href="http://blogs.sun.com/arungupta/entry/screencast_35_jdk_7_project" target="_blank">デモ: NetBeans IDE 7.0 BetaでのJDK 7 Project Coin機能</a> - NetBeans IDEでのJDK 7機能のサポートのビデオ・デモ。 </li> |
| <li><a href="http://download.oracle.com/javase/tutorial/essential/io/fileio.html" target="_blank">Javaチュートリアル: ファイル入出力</a> - 入出力におけるJDK 7の変更の多数の例を含む、Javaチュートリアル内の項。</li> |
| <li><a href="http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html" target="_blank">Javaチュートリアル: forkとjoin</a> - JDK7での新しいfork/joinフレームワークの説明。 </li> |
| </ul> |
| |
| <p>NetBeans IDEでのJavaアプリケーションの開発の詳細は、次を参照してください。 </p> |
| <ul> |
| <li><a href="javase-intro.html">一般的なJavaアプリケーション開発</a></li> |
| <li><a href="editor-codereference.html">NetBeans IDE Javaエディタでのコード支援</a></li> |
| <li><a href="../../trails/java-se.html">一般的なJava開発の学習</a></li> |
| </ul> |
| </body> |
| </html> |