我使用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)
现在我的问题是,我是否可以在service jar中创建一个方法,如下所示
public void write(String s){
//Write some string s to result.txt
},然后从系统上的不同java文件调用此方法,即
java WriteToFile SomeString其中WriteToFile应该使用一些参数调用write。
有可能吗?如果是这样的话,是怎么做的?
这样做的总体目的是让一个服务运行,我可以在其中通过GUI调用方法。
发布于 2013-04-12 03:02:37
要“通过图形用户界面调用方法”,你不能用WinRun4J来实现。在一般规则中,出于安全原因(特殊情况除外),Windows服务不能有GUI。
但是,还有其他工具可以从Java应用程序创建windows服务,使用这些工具可以获得带有GUI的服务,并能够与桌面进行交互。
https://stackoverflow.com/questions/14236760
复制相似问题