SwingアプリでホットリローディングできるJaveleonが便利

Webアプリだとホットリローディングできるフレームワークがあったり、NetBeansが勝手にビルド・デプロイしてくれたりして、ソースコードのビルドなどを気にしなくてもいいようになってきてるんですが、Swingアプリではホットリローディングができるというのはなかなかなかったわけです。


で、このJaveleonというのが、Javaアプリケーションでホットリローディングできるようにするツール。
http://javeleon.org/


ライブラリじゃないので、普通に作ったSwingアプリなどでホットリローディングできます。
ここではNetBeansプラグインとして使いますが、javaコマンドにパラメータ付加するだけなので、Eclipseなどでも使えるようです。

インストール

NetBeansのアップデートセンターに、次のURLを追加します。
http://javeleon.org/javeleon-for-netbeans-7.1/
NetBeans7.0の場合は、7.1の部分を7.0にしてください。


そしたら、「Javeleon 2.0 Beta 6 for NetBeans」というプラグインがあるので、これをインストールします。

登録

Javeleonはフリーのツールなんですが、なんか、登録しないといけないようです。
とりあえず、適当にJavaアプリケーションプロジェクトを作成して、プロジェクトを右クリックしてメニューから「Javeleon > Register Javeleon」を選択して登録ダイアログを開きます。


URLが書かれたボタンを押すと、登録サイトが開くので、名前とメールアドレスを入力して「送信」ボタンを押すと、ライセンスコードが書かれたメールが来ます。ちなみに、なかなか来ないと思ったらGMailにスパム扱いされてました。


送られてきたライセンスコードを入力して「了解」を押すと、登録完了です。4月までってなってるんですけど、どうやったらずっと使えるんでしょうかね。

プロジェクトにJaveleonを追加

プロジェクトを右クリックしてメニューから「Javeleon > Add Javeleon」を選択すると、プロジェクト中のコードを実行するときにJaveleonが組み込まれます。

試してみる

JFrameフォームを作成して、こんな感じでコンポーネントを配置します。


ボタンのイベントハンドラにこんな感じのコードを入力します。

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        jTextArea1.append(jTextField1.getText() + "\n");
    }

このファイルを実行すると、Javeleonが動いていることがわかります。


ボタンを押すとテキストフィールドに入力した内容がテキストエリアに表示されます。


それでは、少し変更してみます。

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jTextArea1.append(new java.util.Date() + ":");
        jTextArea1.append(jTextField1.getText() + "\n");
    }                                        

保存すると、Javeleonが自動的にリロードを行います。


ボタンを押すと、変更が反映されてるのがわかります。おぉすごい!


細かい調整するときなんか、便利ですね。いいかも。