JBossASは(Windows版は)run.batで起動する。
run.batに引数を渡したり、場合によってはrun.bat内を書き換えることによって動作を変更できる。
run.batの中身を書き換える場合、run.batをコピーして別名のファイルを作り、そちらで加工して実行することも問題ない。
(その場合、プログラムからは、システムプロパティーprogram.nameで
その別名ファイルの名前が取れる)
run.batは単なるWindowsのバッチなので、実行方法と言っても特に書くことは無いのだが。
> set JAVA_HOME=C:\Program Files\Java\jdk1.6.0 > set JBOSS_HOME=C:\jboss\jboss-4.2.3.GA > cd %JBOSS_HOME%\bin > run.bat
ショートカットのプロパティーの「リンク先」:
C:\jboss\jboss-4.2.3.GA\bin\run.bat
<property name="jboss.home" location="C:/jboss/jboss-4.2.3.GA" /> <target name="run"> <exec executable="cmd" spawn="true"> <arg value="/c" /> <arg value="start" /> <arg value="${jboss.home}/bin/run.bat" /> <env key="JAVA_HOME" value="C:\Program Files\Java\jdk1.6.0" /> </exec> </target>
なぜexecタスクのexecutable属性に直接run.batを指定しないのかというと、実験例を参照。
run.batを実行する際に引数を指定することが出来る。
オプション | 例 | 省略時 | |
---|---|---|---|
-c | 実行するコンフィグレーションを指定する。 (serverの下にあるallとかdefaultとかminimalのどれを実行するか) プログラムからは、システムプロパティーjboss.server.nameで取得できる。 |
-c default | default |
-b | JBossサーバーがバインドするIPアドレスを指定する。 ブラウザーからは、ここで指定したIPアドレスで接続することになる。 http://192.168.0.2:8080/〜 (ここでIPアドレスを指定すると、localhostでは接続できなくなる。 指定したのが0.0.0.0であれば、どちらでも接続できるが…) プログラムからは、システムプロパティーjboss.bind.addressで取得できる。 |
-b 192.168.0.2 | 127.0.0.1(localhost) |
-V | バージョンを表示する。 | ||
-h | ヘルプ(、すなわちオプション一覧)を表示する。 |
Eclipseのデバッグ機能と連動できるようにしてJBossを実行することが出来る。[2008-11-08]
(Eclipse上でブレークポイントを指定しておくと、そこで停止する)
rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% ↓ set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%
run.batの中を見れば分かる通り、環境変数JAVA_OPTSでデバッグの指定をしているので、事前に別途JAVA_OPTSを設定しておけばrun.batをいじる必要は無い。
それを利用して、Antのexecを使ってデバッグ用に起動することが出来る。
<target name="run-debug"> <exec executable="cmd" spawn="true"> <arg value="/c" /> <arg value="start" /> <arg value="${jboss.home}/bin/run.bat" /> <env key="JAVA_OPTS" value="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n" /> </exec> </target>
suspendをnにしておけば、JBossの起動はリモートデバッグの接続を待たずに行われる。
デバッグしたい状態になってからEclipseのデバッグを実行開始すればいい。