NetBeansのモジュールのインストールを便利にしてくれるものかと、勝手に誤解してたけど、先日違うことに気づきました。
NetBeansの起動・停止のタイミングで処理を実行するためのものらしいです。
具体的な実行タイミングとしては、NetBeansが起動するときに出てるスプラッシュスクリーンが表示されてる時に実行させる処理や、ウィンドウの閉じるボタンが押されたときに実行される処理がかけます。
作ってみよう
作り方は非常に簡単です。NetBeansのモジュールのプロジェクトで新規作成からモジュールインストーラを選びます。
そうするとInstallerクラスが作成されます。restoredメソッドが最初から用意されていますが、恐らくclosingメソッドとcloseメソッドをよく使うと思います。
package okazuki; import org.openide.modules.ModuleInstall; public class Installer extends ModuleInstall { @Override public void restored() { System.out.println("起動中の処理"); } @Override public boolean closing() { System.out.println("終了前の処理"); // 常にfalseを返すとNetBeansを閉じさせないことが出来る return true; } @Override public void close() { System.out.println("終了処理"); } }
これで、自分の作ったモジュール全体の前処理や後処理を書くことが出来ます。
ちょっと本格的にモジュール作るとしたら、1つは必要になりそうなクラスかな。
この状態で実行すると、出力ウィンドウに以下のようにメッセージが表示されます。
------------------------------------------------------------------------------- >Log Session: Sunday, February 28, 2010 5:11:04 PM JST >System Info: Product Version = NetBeans IDE 6.8 (Build 200912041610) (#ec9be6a6486c) Operating System = Windows Vista version 6.0 running on x86 Java; VM; Vendor = 1.6.0_11; Java HotSpot(TM) Client VM 11.0-b16; Sun Microsystems Inc. ...途中省略... WARNING [org.netbeans.modules.project.libraries.LibrariesStorage]: LibraryDeclarationHandlerImpl: Cannot create library: sjmc-ant-utils of unknown type: j2se WARNING [org.netbeans.modules.project.libraries.LibrariesStorage]: LibraryDeclarationHandlerImpl: Cannot create library: cdc-agui-swing-layout of unknown type: j2se 起動中の処理 INFO [org.netbeans.core.startup.NbEvents]: モジュールを有効化しています: org.openide.util [7.31.1.1 1 200912041610] org.openide.modules [7.13.1 200912041610] ...途中省略... INFO [org.netbeans.core.ui.warmup.DiagnosticTask]: Total memory 2,147,483,647 終了前の処理 終了処理
因みに、このInstallerクラスは、manifest.mfファイルの以下の行で、NetBeansに読み込ませてるっぽいです
OpenIDE-Module-Install: okazuki/Installer.class