Java+WinSW jarをWindowsサービスから使用

JavaのjarをWindowsサービスから使用するサンプルです。WinSWを使用します。
(確認環境:JDK8,Eclipse 4.19,Windows10)

目次

手順 WinSWとは
Javaのコード
WinSWの配置とxmlの作成
サービスへの登録
サービスの実行と確認

WinSWとは

 

Javaのコード

ファイルを作成し文字列を書き込みます。

package com.example.test1;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		String dir = "D:\\test3";
		String file1 = "\\test1.txt";
		String charset = "Shift_JIS";
		List<String> list = new ArrayList<>(Arrays.asList("赤", "黄", "青"));

		try (FileOutputStream fo = new FileOutputStream(dir + file1);
				OutputStreamWriter ow = new OutputStreamWriter(fo, charset);) {
			for (String a : list) {
				ow.write(a);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

jarファイルを作成

jarファイルの作成は以下を参照願います。
ファイル名は、WinService1.jarとしました。

Java Eclipseでjarを作成しHello Worldを表示

 

WinSWの配置とxmlの作成

1.以下のリンクからWinSW.NET4.exeをダウンロードします。

https://github.com/winsw/winsw/releases/tag/v2.11.0

 

2.任意のフォルダにexeファイルとjarファイルとxmlをまとめます。
jarは作成したWinService1.jarファイルを配置します。
exeはWinSW.NET4.exeのファイル名をWinService1.exeに変更します。
xmlファイルは新規作成します。

D:\dev\WinSWに配置しました。

xmlファイルには以下を記述します。

<service>
  <id>WinService1</id>
  <name>WinService1</name>
  <description>サービスのテストです。</description>
  <executable>java</executable>
  <arguments>-jar "D:\dev\WinSW\WinService1.jar"</arguments>
  <logmode>rotate</logmode>
</service>

 

サービスへの登録

1.コマンドプロンプト>その他>管理者として実行をクリックします。

 

2.コマンドプロンプト上で以下のコマンドを実行します。

登録するexeファイル install

D:\dev\WinSW\WinService1.exe install

成功すると以下のように正常終了のメッセージが表示されます。

※削除はsc delete サービス名で行いました。間違ったサービス名を入力しないよう注意が必要です。
一覧でサービスのプロパティを開きサービス名をコピーして行います。

 

サービスの実行と確認

1.Windowsキー+Sで検索窓を開きサービスと入力しサービスの画面を開きます。
作成したサービスが登録されています。

 

2.サービスを右クリックして「開始」をクリックするとサービスが起動します。
ファイルを作成して終了するので以下の警告が出ます。ファイルは作成されています。

 

3.スタートボタン(画面左下にあるWindowsアイコン)を右クリックし、「イベントビューア」をクリックします。サービスを実行した結果が表示されています。

 

4.上記表の最初の1行をクリックするとjavaコマンドでjarを実行している文言が表示されます。

関連の記事

C# Windowsサービスを作成しhello worldを表示

△上に戻る