FindBugsプラグイン

実行前にソースコードのバグを見つけてほしいここで紹介するFindBugsプラグインは、ソースコードを静的解析し、バグの可能性のある箇所を指摘してくれるプラグインです。このプラグインの導入によって、バグの発生を開発中に未然に防ぐことができます。例えば、次のような問題のあるコードがあったとします。St

edit

2006年2月27日 20:00

実行前にソースコードのバグを見つけてほしい

ここで紹介する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)。


FindBugsの実行
図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を再起動するだけで、インストールは完了です。



SourceForge.jp: Project Info - プロパティエディタ開発プロジェクト
http://sourceforge.jp/projects/propedit/

再起動後、設定ウィンドウの「プロパティーエディター」を選択し、「読み込み時のエンコード」が「MS932」になっていることを確認します(図6)。


プロパティーファイルのエンコード設定
図6:プロパティーファイルのエンコード設定
(画像をクリックすると別ウィンドウに拡大図を表示します)

インストール後、プロパティーファイルに日本語を入力しても文字化けが発生しなくなります(図7)。


文字化けしなくなったプロパティーファイル
図7:文字化けしなくなったプロパティーファイル

なお、CrossJPropEditorプラグインなどを導入することでもプロパティーファイルの文字化けを回避できます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30