S-JIS[2008-11-23] 変更履歴

JBossAS run.bat

JBossASは(Windows版は)run.batで起動する。
run.batに引数を渡したり、場合によってはrun.bat内を書き換えることによって動作を変更できる。

run.batの中身を書き換える場合、run.batをコピーして別名のファイルを作り、そちらで加工して実行することも問題ない。
(その場合、プログラムからは、システムプロパティーprogram.nameで その別名ファイルの名前が取れる)


run.batの実行方法

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

Antのexecタスクで実行する例

	<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の引数

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を使ったデバッグ方法

Eclipseのデバッグ機能と連動できるようにしてJBossを実行することが出来る。[2008-11-08]
(Eclipse上でブレークポイントを指定しておくと、そこで停止する)

  1. JBOSS_HOME/bin/run.batのデバッグの設定のコメントアウトを外しておく。
    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%
    
  2. Eclipseで上記のポート(8787)でリモートデバッグを受け付けるように設定しておく。
    Eclipse3のリモートデバッグの構成の設定方法
  3. run.batを実行する。
    すると、リモートデバッグの接続待ちになる。(suspend=yが指定されているから)
  4. 上記で設定したEclipseのデバッグを実行する。
    これでちゃんと接続されれば、JBossの起動が再開される。

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のデバッグを実行開始すればいい。


JBossASへ戻る / Java目次へ行く
メールの送信先:ひしだま