将Java程序变成Windows系统服务

2016-02-19 14:35 5 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的将Java程序变成Windows系统服务,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

    近买了一台机器做个source服务器和异地的几个朋友一起做点东西玩玩。但是由于用的是电信的ADSL,所以地址是动态的,天天机器自动重起的时候就会变化。!-- frame contents -- !-- /frame contents --于是我就用3322的域名绑定,但是3322提供的windows更新dns的客户端运行时不是作为系统服务运行的,所以没有用户登录时它是没有运行的,所以还是没有解决问题。后来下了一个Windows Resource Kit Tools(这个工具windows server默认是没有的,需要到微软的网站上下载,具体地址我没有记住,Google一下肯定能找到),里面有一些工具可以把普通的win32程序变成系统服务。

    instsrv: 这个工具是把win32程序变成系统服务,但是并不是所有程序都适合做系统服务的,如CN99的客户端,注册成系统服务后就是无法启动的。

    基本用法:instsrv [服务名] [应用程序绝对路径]

    srvany: 这个工具就是用来解决上面的工具中的问题,你注册的时候把它当作你要的服务,在用它来启动你的应用程序。

    instsrv [服务名] [srvany的绝对路径]

    注册成功后,到服务治理器中把刚才注册的服务打开,在启动参数中填上你的应用程序绝对路径,启动服务就可以了。

    这种方式可以解决更新域名地址的问题了。

    但是心里不爽,作为一个程序员如此受制于人总是不爽的,其实CN99的动态域名更新协议很简单,编个简单的程序就实现的。无奈只会Java,对于C或C++程序员来说,做一个系统服务实在是小Case啊,后悔当初没有好好学C和C++。但是难道就没有办法把Java程序变成windows系统服务吗?在Java的世界里基本上是没有不可能的事,ObjectWeb Forge上有个项目叫JavaService就是用来把Java程序注册成系统服务的。于是下来看了一下:

    一试--失败

    二试--不成功

    三试--...

    ...
    ...

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    放弃!

    老子自己做了,其实有了上面的instsrv和srvany其实就差一个可执行文件了。于是我用JBuilder把我的jar包做成了一个假的exe文件。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    我的DNS更新程序如下:
  package org.mstar.dns;
  
  import java.util.TimerTask;
  import org.apache.commons.httpclient.HttpClient;
  import org.apache.commons.httpclient.methods.GetMethod;
  import org.apache.commons.httpclient.HttpStatus;
  import org.apache.commons.httpclient.HttpException;
  import java.io.IOException;
  import java.util.*;
  import org.apache.commons.logging.*;
  import org.apache.commons.httpclient.Credentials;
  import org.apache.commons.httpclient.UsernamePassWordCredentials;
  import org.apache.commons.httpclient.auth.AuthScope;
  import java.text.SimpleDateFormat;
  
  public class Refresher {
   private static Log LOG = LogFactory.getLog(Refresher.class);
   public Refresher() {
    Timer timer = new Timer();
    timer.schedule(new RefreshTask(), 0, 60000);
   }
  
   class RefreshTask extends TimerTask {
    static final String URL ="http://members.3322.org/dyndns/update?system=dyndns&hostname=zjumty.3322.org";
  

来源:http://www.tulaoshi.com/n/20160219/1607275.html

延伸阅读
看到网上有同志的介绍将Java程序作成exe文件的方法,写的不错,但是也许是这篇文章完成的时间比较早,许多内容已经不合适了。我在这里补充几条: 一、exe4j !-- frame contents -- !-- /frame contents --     说明:exe4j可以将Jar文件制作成exe文件,但需jre支持,也可将Jar文件放在...
标签: windows 操作系统
如果Windows系统出现故障无法进入,我们通常都会利用DOS启动磁盘引导进入DOS模式,然后使用各种DOS命令对系统进行修复。不过随着Windows视窗平台的逐渐更新,DOS似乎已经开始远离人们,现不少用户对DOS命令几乎无所了解,在这样的情况下,那么只能格式化C盘重装系统了。有没有一种方法,不用进入DOS,也不用重装系统,使用界面化对系统进行...
Sun微系统公司正在努力降低开源Java的参与难度。Sun设立了一个计划,来帮助那些开源开发者达到该公司对Java系统的兼容性要求,不过这个计划只针对Sun公司自家的开源Java。 这个计划将推出Java Technology Compatibility套件,利用这个套件你就能自己检测自己赶进的基于Sun公司的开源Java系统。整个套件也是在GPL协议之下的。 这个检测有什么...
标签: 电脑入门
1、可以使用taskkill命令来实现,taskkill /f /im iexplore.exe /f 指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进 程都将被强制终止 /im iexplore.exe 指定要终止的进程的程序名 注:具体程序使用的进程名可以到Windows任务管理器中查询 2、如何定时来实现,可以通过"控制面板"--"任务计划"来添加任务...
标签: 服务器
windows系统如何管理云服务器   1) 登录用户中心 用户中心地址:http://i.aliyun.com 2) 点击管理控制台进入管理界面 目前管理界面有新旧两种,分别为: 这里可以对服务器进行管理、续费、升级等操作。 新旧控制台使用上还是有不少区别,具体见: 新控制台使用指南:http://help.aliyun.com/...