シェルスクリプトからJavaプログラムを実行する方法について説明します。まず、Javaプログラムを実行ファイル(JARファイル)にコンパイルし、そのJARファイルをシェルスクリプトから実行する方法を紹介します。
ステップ1: Javaプログラムを作成
まず、SleepProgram.javaという名前のJavaファイルを作成します。
// SleepProgram.java
public class SleepProgram {
public static void main(String[] args) {
System.out.println("プログラム開始");
try {
// 100秒スリープ
Thread.sleep(100000);
} catch (InterruptedException e) {
System.err.println("スリープが中断されました");
e.printStackTrace();
}
System.out.println("プログラム終了");
}
}
ステップ2: Javaプログラムをコンパイル
次に、このJavaファイルをコンパイルしてclassファイルを生成します。
javac SleepProgram.java
ステップ3: JARファイルを作成 (オプション)
もし、複数のクラスファイルがあって、それらを一つのJARファイルにまとめたい場合は、以下の手順を実行します。
- マニフェストファイルを作成します。
manifest.txtという名前で以下の内容を含むファイルを作成します。
Main-Class: SleepProgram
- JARファイルを作成します。
jar cfm SleepProgram.jar manifest.txt SleepProgram.class
JARファイルを作成しない場合は、このステップをスキップしても構いません。
ステップ4: シェルスクリプトを作成
次に、シェルスクリプトを作成します。このシェルスクリプト内でJavaプログラムを実行します。
#!/bin/bash
# trapコマンドを使用してシグナルをキャッチし、クリーンアップ処理を定義
trap 'cleanup' EXIT
# クリーンアップ関数の定義
cleanup() {
echo "クリーンアップ中..."
# プロセスを終了
pkill -P $$
}
# Javaプログラムの実行(ここではバックグラウンドで実行しません)
java -cp . SleepProgram
# または、JARファイルを使用して実行する場合
# java -jar SleepProgram.jar
このシェルスクリプトは、Javaプログラムを実行し、スクリプトの終了時にクリーンアップ処理を行います。
ステップ5: シェルスクリプトを実行可能に設定
シェルスクリプトに実行権限を付与します。
chmod +x program.sh
ステップ6: シェルスクリプトを実行
シェルスクリプトを実行します。
./program.sh
これは、シェルスクリプトの終了時にJavaプロセスを安全にクリーンアップするための実行例です。この方法を使用すれば、シェルスクリプトからJavaプログラムを実行し、適切にクリーンアップ処理を行うことができます。

コメント