0

WinRun4J を使用して jar ファイルから Windows サービスを作成しましたが、これは非常に基本的なものです。

package org.boris.winrun4j.test;

import java.io.BufferedWriter;
import java.io.FileWriter;

import org.boris.winrun4j.Service;
import org.boris.winrun4j.ServiceException;

public class ServiceWrite implements Service
{   
private volatile boolean shutdown = false;

public int serviceMain(String[] args) throws ServiceException {
    int count = 0;
    while (!shutdown) {
        try {
            Thread.sleep(6000);
        } catch (InterruptedException e) {

        }
        try {
            FileWriter fstream = new FileWriter("result.txt");
            BufferedWriter out = new BufferedWriter(fstream);
            out.write("Counts: " + count);
            out.close();
        } catch (Exception e){

        }
        count++;
    }
    return 0;
}
public int serviceRequest(int control) throws ServiceException {
    switch (control) {
    case SERVICE_CONTROL_STOP:
    case SERVICE_CONTROL_SHUTDOWN:
        shutdown = true;
        break;
    }
    return 0;
}
}

サービスが開始されると、ルートフォルダーにあるresult.txtに数秒ごとに書き込みを続けます..(WinRun4Jを試すためだけに)

ここで私の質問は、このようにサービス jar でメソッドを実行できますか?

public void write(String s){
 //Write some string s to result.txt
}

次に、システム上の別の Java ファイルからこのメソッドを呼び出します。

java WriteToFile SomeString

WriteToFile は、いくつかの引数を指定して書き込みを呼び出すことになっています。

出来ますか?もしそうなら、どのように?

これの全体的な目的は、GUI を介してメソッドを呼び出すことができるサービスを実行することです。

4

1 に答える 1

0

「GUI経由でメソッドを呼び出す」には、WinRun4Jではできません。一般に、Windows サービスはセキュリティ上の理由から GUI を持つことはできません (特別な場合を除く)。

ただし、Java アプリケーションから Windows サービスを作成するツールは他にもあります。これらのツールを使用すると、GUI を使用してサービスを作成し、デスクトップとやり取りすることができます。

于 2013-04-11T19:02:37.480 に答える