aaaaa

シェルスクリプトから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ファイルにまとめたい場合は、以下の手順を実行します。

  1. マニフェストファイルを作成します。manifest.txtという名前で以下の内容を含むファイルを作成します。
Main-Class: SleepProgram
  1. 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プログラムを実行し、適切にクリーンアップ処理を行うことができます。

コメント

タイトルとURLをコピーしました