需要用java写一个webService的客户端,这个客户端已经完成,现在需要把它做成windows服务的形式。请各路高手帮忙。目前做到:
    1.采用工具wrapper。
    2.一般的小java程序能做成服务并执行。
    3.我的客户端已经完成,用批处理文件能正确执行。存在的问题:
    1.整个客户端写的比较灵活,采用了很多配置文件,如果以批处理文件运行没问题。
    2.用wrapper做成服务后,不知道怎么获取服务启动程序的绝对路径,这个路径用于获取配置文件。部分代码:public class Main {
public static void main(String a[]) throws IOException{
Boolean b=ClassLoader.getSystemResource("/")==null;
FileWriter fw=new FileWriter("d:/test.txt");
fw.write(b.toString());
fw.flush();
fw.close();

}
}上面的代码是用于测试的,
如果是以批处理文件运行,能都通过ClassLoader.getSystemResource("").getFile()来获取到程序的绝对路径,一切都没问题。
如果用wrapper将这个小程序做成windows服务,服务能运行,但ClassLoader.getSystemResource("/")==null为真,查看服务属性,可以看到服务启动程序的绝对路径。请问有没有高人能帮我解决这个问题?如果在代码中获取到服务启动程序的绝对路径?

解决方案 »

  1.   

    没尝试过,不过如果这样不行的话,尝试用Class来取路径,我觉得回比取系统资源路径更靠谱:
    Main.class.getResource("/")
      

  2.   

    wrapper没用过,我是把程序写完后,编译成jar文件,然后用exe4j打包成windows服务,exe4j里可以选择的。读取系统的配置文件,我是用这样的:
    String path = System.getProperty("user.dir")+File.separatorChar  + "Config.ini";System.getProperty("user.dir")取的就是jar文件的windows系统的路径。