JavaのjarをWindowsサービスから使用するサンプルです。WinSWを使用します。
(確認環境:JDK8,Eclipse 4.19,Windows10)
目次
手順 | WinSWとは |
Javaのコード | |
WinSWの配置とxmlの作成 | |
サービスへの登録 | |
サービスの実行と確認 |
WinSWとは
- WinSWは、任意の実行ファイルをWindowsサービスとして動作させることができます。
- MITライセンスです。
- 以下は、githubのWinSWのリンクです。
https://github.com/winsw/winsw
https://github.com/winsw/winsw/blob/master/doc/installation.md
Javaのコード
このJavaのコードからjarを作成しWindowsサービスに登録して動かします。
内容はファイルを作成し文字列を書き込みます。
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を実行している文言が表示されます。
関連の記事