|
|
1 2 3 次のページ
|
|
実行前にソースコードのバグを見つけてほしい
|
ここで紹介するFindBugsプラグインは、ソースコードを静的解析し、バグの可能性のある箇所を指摘してくれるプラグインです。このプラグインの導入によって、バグの発生を開発中に未然に防ぐことができます。例えば、次のような問題のあるコードがあったとします。
String a = "aaaa";
a.replace('a', 'b');
if (a.equals("bbbb")) {
この問題は、a.replace("a", "b");でプログラマはストリングにあるすべてのaをbで置き換えた結果を期待しています。確かに置き換えてはいるのですが、java.lang.Stringは不変(immutable)オブジェクトなので、"If (a.equals("bbbb"))"の結果はtrueになることがありません。
このような問題は実行前(コーディング中)に検出したいものです。Eclipseも低水準で、静的解析(初期化されないオブジェクトや、非推奨メソッド呼び出しなどを警告)してバグを生みそうなコード検出してくれます。しかし、例のような問題は検出することができません。
|
インストール
|
http://sourceforge.net/project/showfiles.php?group_id =96405&package_id=118233から「de.tobject.findbugs_0.0.19.zip」をダウンロードします。
適当なフォルダにアーカイブファイルを展開し、Eclipseをインストールしたディレクトリーのpluginsフォルダーの下に配置して、Eclipseを再起動するだけで完了です。
|
使い方
|
チェックを実行したい対象のプロジェクトを右クリックし、「Find Bugs→Find Bugs」をクリックします(図1)。
図1:FindBugsの実行
静的解析が開始し、問題ビューにバグの可能性のある箇所の一覧が表示されます(図2)。
図2:バグの可能性を指摘した一覧 (画像をクリックすると別ウィンドウに拡大図を表示します)
表示される文章が日本語に対応しているのもうれしいところです。また、FindBugs専用のビューも用意されています。メニューから「ウィンドウ→ビューの表示→その他」で表示される一覧から、「FindBugs→Bug Details」をクリックすると、Bug Detailsビューを表示することができます。
エディターの警告アイコンをクリックすると、BugDetailsビューに問題点の詳細が表示されます(図3)。
図3:指摘された問題の詳細説明
Findbugsはプロジェクト特有の設定を行うこともできます。プロジェクトを右クリックして「プロパティ」を選び、「Findbugs」を選択します。図4のように、下部の一覧からプロジェクトごとにチェック対象とするルールを選択できます。
図4:検出するバグの設定 (画像をクリックすると別ウィンドウに拡大図を表示します)
バグとしては扱ってほしくない項目は、ここのチェックボックスを外しておきましょう。また、「Run FindBugs automatically」にチェックを入れておけば、自動でチェックを実行してくれるようになります。
|
プロパティーファイルが文字化けする
|
Javaのプロパティーファイル(*.properties)で日本語を扱う場合、Unicodeエスケープ形式で記述する必要があります。Eclipseにはプロパティー・ファイルエディターがインストールされていますが、初期状態では日本語を入力すると文字が化けてしまいます(図5)。
図5:プロパティーファイルの文字化け
文字化けを防ぐためには、プロパティーエディタープラグインを利用します。以下のURLから「PropertiesEditor_EclipsePlugin_for_3.x」の最新バージョンをダウンロードし、適当なフォルダーにアーカイブファイルを展開します。これを、Eclipseをインストールしたディレクトリーのplugins、featuresフォルダーに上書きしてEclipseを再起動するだけで、インストールは完了です。
再起動後、設定ウィンドウの「プロパティーエディター」を選択し、「読み込み時のエンコード」が「MS932」になっていることを確認します(図6)。
図6:プロパティーファイルのエンコード設定 (画像をクリックすると別ウィンドウに拡大図を表示します)
インストール後、プロパティーファイルに日本語を入力しても文字化けが発生しなくなります(図7)。
図7:文字化けしなくなったプロパティーファイル
なお、CrossJPropEditorプラグインなどを導入することでもプロパティーファイルの文字化けを回避できます。
|
1 2 3 次のページ
|
|
|
著者プロフィール
株式会社DTS システム開発本部 産業事業部 木村 真幸(KIMURA, Masayuki)
開発プロセス、Strutsベースのフレームワーク開発担当。プロジェクトの技術支援やセミナー講師も行う。多忙な毎日で子供には「たまに来る優しいおじさん」と思われている。
|
|
|
|