Java web startアプリケーションをデバッグする(Java6)
こちらを参考にさせて頂いた。
SMG >> Java トラブルシューティング >> コラム: Java Web Startのリモートデバッグ
java web start自体はコードベースからアプリケーションを起動するjnlpランチャでしかないため、java web start経由で起動されたアプリケーションをデバッグするためには、デバッグ用のパラメタを起動するアプリケーションに引き渡す必要がある。(そのためにjnlpx.vmargsパラメタを使用する)
起動用コマンド
%JAVA_HOME%\bin\javaw.exe -Xbootclasspath/a:%JAVA_HOME%\jre\lib\javaws.jar;%JAVA_HOME%\jre\lib\deploy.jar -Djnlpx.home=%JAVA_HOME%\jre\bin -Djnlp.jvm=%JAVA_HOME%\jre\bin\javaw.exe -Djava.security.policy=file:%JAVA_HOME%\lib\security\javaws.policy -DtrustProxy=true -Xverify:remote -Djnlpx.heapsize=NULL,NULL -Djnlpx.vmargs="-classic -Xdebug -Dnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=接続待ちポート番号" com.sun.javaws.Main "起動する.jnlpへのURL"
このコマンドはJava Web Startにより該当のアプリケーションとラィブラリィをjnlpに従ってダウンロード/インストールした後に起動して終了する。
コマンドは終了したが、実際にはデバッグ対象のアプリケーションが起動した直後にサスペンドしているので、jdbやEclipse等のデバッガから該当のホスト名とaddressで指定したポート番号にアタッチすることでデバッグが可能となる。