EclipseユーザのためのNetBeans入門

最終更新日:2007/04/25

目次

NetBeansとは

NetBeansはNetBeans.org(日本語サイトはこちら)によって開発されているJava統合開発環境です。Sun Microsystemsがスポンサーとなって開発を支援しているため、標準仕様への対応が早く、またNetBeansの開発成果がJavaSEに取り込まれるといったことも行われています。2007/04/23現在の最新版は5.5で日本語版も提供されています。2007年5月末にバージョン5.5.1、2007年11月にはバージョン6.0のリリースが予定されています。

NetBeansの強みは?

JavaのIDEではEclipseが事実上の標準として広く使われていますが、Eclipseに対するNetBeansの強みとして、次のような点が挙げられます。

オールインワン

Eclipseは単体では基本的な機能のみ提供し、必要に応じてプラグインを導入することにより機能を追加することを前提としたIDEです。プラグインの開発は広く行われており、ユーザが自分好みの環境にカスタマイズ可能な自由度の高いIDEです。

しかし様々なプラグインをインストールしなければならないため、初心者にとっては導入が難しいという欠点もあります。例えばEclipseを日本語化するためには言語パックをインストールする必要がありますが、言語パックがどこにあるのか、どうやってインストールするのか、最初はわからないかもしれません。また、デフォルトではWeb開発環境がインストールされていないため、WTP等のプラグインをインストールする必要があります。Callistoによりプラグイン導入は容易になったものの、開発環境のセットアップに手間がかかることは避けられません。

これに対して、NetBeansはインストールした後すぐに様々な機能が使えるよう、多くの機能が標準でインストールされています(日本語版が提供されているので、Eclipseのように言語パックを適用する必要はない)。例えばWeb開発を行うためには、Webコンテナ, HTML/JSPエディタが必要になると思います。NetBeansでは標準でTomcatやHTML/JSPエディタが含まれているため、インストール後すぐにWebアプリケーションの開発ができることは大きなメリットでしょう。以下はJSFのタグ補完を行っているスナップショットです。

強力なGUIビルダ「Matisse」

Swingアプリケーションを作成するためのGUIビルダ「Matisse」は非常に強力です。EclipseにもVisual Editorを始めとするプラグインを導入することにより、GUIビルダを使うことができますが、完成度という点ではMatisseが頭一つ抜けている感じがあります。

Matisseは下のスナップショットのように、パレットからGUIコンポーネントを選択し、画面に貼り付けることができます。貼り付けの際、図のように他のコンポーネントとの相対的な位置関係を意識した配置ができるため、簡単に画面を作成できるようになっています。MatisseではGroupLayoutというレイアウトを採用しており、このレイアウトはJavaSE6.0に標準で含まれています。これまでSwing/AWTでは柔軟なレイアウトを行うことができるビルダが少なかった状況でしたが、MatisseによってSwing画面がかなり簡単に作れるようになったと思います。

以下サンプルのユーザ登録画面。直感的な操作ができるため、NetBeansやMatisseを使い慣れていなくても簡単に作れます。Matisseの使い方については「NetBeans IDE 5.5 における GUI 構築」のチュートリアルやデモを見るとよくわかります。

ビジュアル開発ツールによる「コードをなるべく書かない」開発

Matisseのようにデフォルトで含まれていませんが、拡張パックをインストールすることにより、Webアプリケーションやモバイルアプリケーションをビジュアル開発環境を使って構築できます。Webアプリケーション開発ではJSFコンポーネントをドラッグ&ドロップで貼り付け可能なVisual Web Pack、モバイルアプリケーション開発ではMIDPのUIコンポーネントの貼り付けやフローデザインを行うことができるMobility Packが提供されています。以下はMobility Packを使ってモバイルアプリケーションの画面デザインを行っているスクリーンショットです。

NetBeansではこれら開発ツールを使うことによって、なるべくコードを書かなくてよいような開発環境を目指しているように思います。

プロジェクトの作成

Eclipseと同じく「ファイル」メニューから「新規プロジェクト」を選択します。下記の画面が表示されるため、プロジェクトで「Java アプリケーション」を選択して、ウィザードを進めます。

作成完了後、Eclipseのパッケージ・エクスプローラに相当するプロジェクト・ウィンドウに、作成したプロジェクトが表示されます。隣のファイル・ウィンドウでプロジェクト配下に実際にどんなファイルがあるのか確認できます。Eclipseのナビゲーター・ビューに相当するウィンドウです。

ソースファイルの作成と編集

プロジェクト・ウィンドウやファイル・ウィンドウでソースパッケージやパッケージを選択して、右クリックからパッケージの作成やクラスの作成を行います。ソースファイルを新規作成すると、クラス宣言やコンストラクタを含む雛形ソースが作成されます(下図)。

コンテンツ・アシストはEclipseと同じくCtrl + SPACEに割り当てられています。テンプレート機能も用意されています。例えばEclipseでsysoutと入力した後にCtrl + SPACEとすると、 System.out.println(""); に置換されますが、NetBeansではsoutと入力した後にSPACEで同じように置換されます。

エラーのある行に対して修正候補を表示するクイックフィックス(Eclipseではエラー行を選択してCtrl + 1)の機能もNetBeansで用意されており、エラー行を選択してAlt + Enterで修正候補が表示されます。

ビルド

Eclipseと同じく、ソースが編集される度にコンパイルエラーのチェックを行い、エラーがあれば赤の波線で表示されます。ただし、まだこの時点ではclassファイルは生成されていません。NetBeansではビルドはAntと統合されており、Antスクリプトを実行することによりビルドやプログラムの実行が行われます。

プロジェクト・ウィンドウの隣にあるファイル・ウィンドウを開くと、build.xmlがあることがわかります。これがこのプロジェクトのAntスクリプトです。build.xmlをダブルクリックで開くと以下のような画面になります。

build.xmlの中を見てみると、実際にはnbproject/build-impl.xmlをインポートしていて、実行できるターゲットはbuild-impl.xmlで定義されています。画面左下のAntターゲット・ウィンドウに表示されているのが、予め用意されているターゲットの一覧です。黒字のターゲットは右クリックからそのターゲットを実行できます。文字が薄くなっているターゲットは他のターゲットから実行されるためのもので、ターゲット名の頭に-を付けるとこのようになります。このターゲットはAntターゲット・ウィンドウから直接実行できません。

ライブラリの追加

プロジェクトで参照するライブラリがある場合は、プロジェクトを右クリックしてプロジェクトのプロパティを開きます。左側のメニューから「ライブラリ」を選択し、右側のタブペインでコンパイル時やビルド時に必要なライブラリを追加します。

追加したライブラリはAntスクリプトから参照可能な形で記述されるため、外部ライブラリを参照するようなプロジェクトでもNetBeans外部からAntスクリプトを実行することによりビルド/実行が可能です。

実行

プログラムを実行するには、対象のソースを選択して右クリックから「ファイルを実行」を選択します(または Shift + F6とします)。すると画面下の出力ウィンドウに以下のように表示されます(最後のhogeはプログラムの出力です)。

init:
deps-jar:
Created dir: C:\netbeans-prj\HelloWorld\build\classes
Compiling 1 source file to C:\netbeans-prj\HelloWorld\build\classes
compile-single:
run-single:
hoge
構築成功 (合計時間: 2 秒)

これを見るとプログラムの実行がAntの「run-single」タスクを実行し、その依存タスクである「init」や「deps-jar」が実行されていることがわかります。

デバッグ

デバッグを行うには、対象プログラムを選択して右クリックから「ファイルをデバッグ」を選択します(またはCtrl + Shift + F5とします)。すると画面下にデバッグ用の各種ウィンドウが開かれます。Eclipseのようにパースペクティブが切り替わるわけではなく、必要なウィンドウが開かれるといった感じです。

ブレークポイントの設定はエディタの左端をシングルクリックでON/OFFします。ステップイン、ステップオーバー、ステップリターン(ステップアウト)、再開(次のブレークポイントまで進む)はそれぞれ、F7, F8, Ctrl + F7, F4に割り当てられています。これらのコマンドを実行するためのアイコンはウィンドウには表示されませんが、メニューの「実行」から選択することができます。

リファクタリング

Eclipseユーザにとってはおなじみのリファクタリング機能です。ここでは変数名、メソッド名、クラス名、Javadoc、メソッド抽出、総称型引数の推測(Genericsへのリファクタリング)、リファクタリングのプレビューについてEclipseとNetBeansを比較してみます。

機能 Eclipse 3.2.2 NetBeans 5.5
変数名のリファクタリング
メソッド名のリファクタリング
クラス名のリファクタリング
Javadocのリファクタリング
メソッド抽出
総称型引数の推測 ×
リファクタリングのプレビュー

Eclipseでよく使われる機能を中心に選びましたが、NetBeansもEclipseと遜色ない機能を持っているようです。Eclipseのすべての機能をサポートしているわけではないため、リファクタリング機能を使いこなしている人にとっては物足りない部分もありますが、基本機能としては十分な機能を持っています。

環境設定

NetBeansにおける環境設定は、メニューの「ツール」→「オプション」を選択して表示されるオプション画面で行います。

キーマップ

キーマップを変更するには、オプション画面の「キーマップ」アイコンを選択し、プロファイルでキーマップを選択します。標準で用意されているキーマップは「NetBeans」(デフォルト)、「Eclipse」、「Emacs」です。「Eclipse」はEclipseユーザが移行しやすいように用意されたEclipseユーザ向けのキーマップですが、すべて同じキーマップというわけでもないため、調整は必要です。キーマップのカスタマイズはキーマップ選択画面で行います。

行番号の表示

Eclipseもそうですが、デフォルトでソースエディタに行番号が表示されていません。行番号を表示するには、オプション画面左下の「詳細設定」を選択し、「編集」→「エディタの設定」で「行番号」にチェックを入れます。もしくはNetBeansのメニューから「表示」→「行番号を表示」にチェックを入れます。

行の高さの設定

Eclipseに慣れた人がNetBeansのエディタ画面を見ると、行の高さがEclipseよりも大きいため1画面で表示される行数が少ないことが気になるかもしれません。この行の高さを変更するには、詳細オプション画面から「編集」→「エディタの設定」→「Javaエディタ」の「行の高さの修正」を0.8程度にすると、Eclipseのエディタ・ビューと同じぐらいの高さになります。

SDIモード

詳細オプション画面から「IDE構成」→「システム」→「システム設定」の「UIモード」をSDIモードにすると、NetBeansの各ウィンドウを独立したウィンドウに"ばらす"ことができます。各ウィンドウのスクリーンショットをとる場合に便利です。

キーボード・ショートカット

使用頻度が高いと思われるショートカットキーの一覧です。Eclipseとキーバインドが異なる部分を赤字にしてあります。NetBeansに用意されているデフォルトのキーバインドとEclipseユーザ向けのキーバインド共に、Eclipseのデフォルトキーバインドと異なっているものが多いため、必要に応じてカスタマイズするとよいでしょう。尚、以下のショートカットキーはEclipse, NetBeans共にWindows版のものを載せています。

カテゴリ 機能 Eclipse NetBeans(デフォルト) NetBeans(Eclipse)
ファイル ファイルを閉じる Ctrl + F4
Ctrl + W
Ctrl + F4
Ctrl + W
Ctrl + F4
Ctrl + W
すべてのファイルを閉じる Ctrl + Shift + F4
Ctrl + Shift + W
Ctrl + Shift + F4 Ctrl + Shift + F4
保存 Ctrl + S Ctrl + S Ctrl + S
ビューの最大化 Ctrl + M Shift + Esc Ctrl + M
検索 検索 Ctrl + F Ctrl + F FIND
置換 Ctrl + F Ctrl + H Ctrl + Shift + F
インクリメンタル検索 Ctrl + J 無し 無し
ソース編集 コンテンツ・アシスト Ctrl + SPACE Ctrl + SPACE
Ctrl + Back_SLASH
Ctrl + SPACE
フォーマット Ctrl + Shift + F Ctrl + Shift + F 無し
importの編成 Ctrl + Shift + O Shift + Alt + F Ctrl + Shift + O
クイックフィックス Ctrl + 1 Alt + Enter Alt + Enter
Javadocの表示 Shift + F2 Alt + F1 無し
指定行へのジャンプ Ctrl + L Ctrl + G Ctrl + L
選択範囲のコメントON/OFF Ctrl + / 無し 無し
実行 実行 Ctrl + F11 Shift + F6 Shift + F6
デバッグ実行 F11 Ctrl + Shift + F5 無し
デバッグ ステップイン F5 F7 F5
ステップオーバー F6 F8 F6
ステップリターン F7 Ctrl + F7 無し
再開 F8 F4 Ctrl + R

CVSクライアント

NetBeansで作成したプロジェクトをCVSへインポートするには、プロジェクトを選択してメニューから「CVS」→「リポジトリにインポート」を選択します。

CVSサーバの情報を入力し、CVSへのインポートを行います。Eclipseの場合はCVSリポジトリに登録したプロジェクトは、パッケージ・エクスプローラ上でアイコンが付いたり、ソースファイルにCVSリポジトリのバージョンが付加されて表示されるのでわかりやすいですが、NetBeansでは特に表示が変わりません。

リポジトリに登録されているファイルを更新すると、下の図のように変更を加えたファイルが青色で表示され、プロジェクトやパッケージに青色のマークが付きます。

相違点を確認したりコミットするには、対象ファイルを右クリックし、「CVS」メニューから行いたい操作を選択します。基本的な操作方法はやはりEclipseと大きな違いはありません。

Profiler

様々な機能をオールインワンで提供するNetBeansですが、拡張パックを適用することにより機能拡張を行うものもあります。アプリケーションのプロファイリングを行うProfiler, モバイルアプリケーション開発環境を提供するMobility Pack, BPELベースのSOAアプリケーションの開発環境を提供するEnterprise Pack, Webアプリケーションのビジュアル開発が可能なVisual Web Pack等です。

ProfilerはNetBeansと連携してJavaアプリケーションのボトルネック解析やメモリリークの解析を行うことができるプロファイラです。アプリケーションのプロファイリングではJConsoleがJDK5.0以降に含まれていますが、JConsoleはあくまでもモニタリングを行うツールであり、ボトルネック箇所を特定したりメモリリークを起こしている箇所を特定する用途として使用するのは難しい面があります。

プロファイリング対象がJDK5.0以降という制限がありますが、ボトルネック解析やメモリリークの解析に役立つツールです。使い方の詳細についてはJava デバッグツール NetBeans Profilerを参照下さい。

Visual Web Pack

Visual Web PackはJSFに対応したWebアプリケーションのビジュアル開発ツールです。Visual Web Packをインストールし、新規プロジェクト作成でVisual Web アプリケーションを選択し、JSPを表示させると以下のようにJSPのデザインビューが表示され、右側にあるパレットからJSFコンポーネントをドラッグアンドドロップで貼り付けることができます。

JSPはWebコンテナ上で実行しなければ実行結果の画面を確認できないという欠点がありますが、Visual Web Packを使うとJSPのプレビューができます。表示方法はJSPのデザイナビュー上で右クリック→「ブラウザでプレビュー」を選択するだけです。

Eclipseユーザが気になること

Eclipseを使い慣れた人にとって、以下の点は気になるかもしれません。

Eclipseであればパッケージ・エクスプローラに直接ファイルをドラッグ&ドロップできますが、NetBeansではこれができません。基本的にCVS等でファイルを管理することになるため、あまり重要ではありませんが、最初のとっかかりで不便に感じるかもしれません。

Javadocの半自動生成は、メソッド引数や戻り値を示す@paramや@returnを自動生成する機能です。Javadocを大量に書く必要がある場合に役に立つ機能ですが、残念ながらこの機能はまだ無いようです。

NetBeansの場合はNetBeans.orgがVisual Web Pack等の優れたビジュアル開発環境を提供していることが大きなメリットですが、サードパーティのプラグインはEclipseと比べて少なく、拡張の選択肢が限られています。ただ、これは今後NetBeansがシェアを伸ばしていけば徐々に増えていくのではないかと思います。

IDEの使い勝手についての感想は人それぞれだと思いますが、「かゆいところまで手が届いている」という意味で、Eclipseの方がコードを書くためのエディタとして洗練されているという印象があります。NetBeansも6.0でエディタ機能を大幅に強化される予定ですので、どこまで改良されるか楽しみです。

最後に

少し前まではEclipseと比べて機能や速度が劣ると見られていたNetBeansも、バージョン5.5になってEclipseに遜色ない機能が搭載されているという印象です。またMatisseやVisual Web Pack, Mobility PackのGUIビルダはEclipseのプラグインと比べて完成度が高く、これだけでもNetBeansを選ぶ理由になると思います。

EclipseとNetBeansでは方向性の違いもあり、一概にどちらがよいかは言えないと思います。Eclipseはコードを効率よく書くことを追求したIDEで、NetBeansは高度なGUI環境を提供することによってなるべくコードを書かなくて済むような環境を目指しているように思います。

そのため、現時点で大量のコードを書く必要がある場合、Eclipseの方が向いていると思います。巨大プロジェクトでの実績や豊富なプラグインがあることも強みですし、細かな使い勝手という点も重要な要素でしょう。ただNetBeansもバージョン6.0でエディタ機能が大幅に強化される予定ため、今後はどうなるかわかりません。ともあれ両IDEが競いながら洗練されていくことは、開発者にとってありがたいことでしょう。


資料室へ戻る


Copyright (c) 2007 OKI Software Co., Ltd.