こんちゃ(´・ω・)ノ
今回はWindowsのbatファイルから、
Javaを起動する方法です。
といっても、普通にコマンドラインからJavaを起動しているだけですが。
★追記 2013/01/30
改良したサンプル作成しました。
よかったら参考にして下さい。
バッチサンプル
■ディレクトリ構成
sample/sample.bat
sample/conf/logback.xml
sample/conf/sample.properties
sample/log/sample.log
sample/lib/各jarファイルなどのライブラリ
今回はログ出力用のlogbackライブラリを読み込んでいます。
この形は以下のことを考慮している。
・Sample.class実行後、sample.propertiesを読み込む。
・Sample.class内で実行した処理をlogbackを用いてログ出力を行う。
@echo off
echo ==========================
echo 環境変数設定
echo ==========================
REM == バッチファイル起動ディレクトリ取得 ==
SET BAT_PASS=%~dp0
REM == 実行するJavaClass指定 ==
SET EXECUTE_CLASS=jp.co.test.Sample
REM == クラスパス設定 ==
SET CLASS_PASS=.;%BAT_PASS%conf\.
SET CLASS_PASS=%CLASS_PASS%;%BAT_PASS%lib\logback-classic-0.9.18.jar
SET CLASS_PASS=%CLASS_PASS%;%BAT_PASS%lib\logback-core-0.9.18.jar
SET CLASS_PASS=%CLASS_PASS%;%BAT_PASS%lib\slf4j-api-1.5.11.jar
REM == 各設定値をコマンドプロンプトに表示 ==
echo BAT_PASS=%BAT_PASS%
echo EXECUTE_CLASS=%EXECUTE_CLASS%
echo CLASS_PASS=%CLASS_PASS%
echo ==========================
echo Java実行
echo ==========================
echo java -cp %CLASS_PASS% %EXECUTE_CLASS%
java -cp %CLASS_PASS% %EXECUTE_CLASS%
REM 一時停止
pause
■解説
・@echo off
コマンドを表示させないようにする設定
・echo
コマンドプロンプトに表示する。
・REM
コメントです。
・SET
環境変数設定用のコマンド。
環境変数は";"区切り。
(例)SET Path=%Path%;C:\\java\jdk1.6.0_22\bin
※"%~dp0"はバッチが起動したディレクトリ(バッチファイルがあるところ)が設定される。
・CLASSPATH
クラスパスはJavaプログラムでlibとかによく入っている、
いろんなjarを読み込むためのもの。
まぁ他にもいろいろ役割はあるのだが、
とりあえずそんな感じで覚える。
・Java実行コマンド
環境変数でjavaが設定されていて使えること。
直接指定してもいいのだが。
設定されているかどうかは、
コマンドプロンプトから
java -versionコマンドを実行する。
バージョンが表示されれば、設定はされている。
java -cp {クラスパス} {実行するクラス}
-cp(-classpath)は、
クラスパスの指定である。
ここに、先ほど設定したクラスパス環境変数を入れてあげる。
■まとめ
最近はWebAPとしてのJavaが多くなってきました。
なかなかbatファイルから実行することは少なくなってきました。
ですが、夜間バッチプログラムなど、
JOB管理ツールからJavaを実行する際は、この知識を使うかもしれないです。
JOB管理ツールがbatファイルを実行し、batファイルはjavaを実行する。
このような流れです。
まぁ結構基本的なことだから、
覚えておいて損はないと・・・思う。
[33回]
PR
COMMENT