JavaService创建windows系统服务
2015-08-31 13:56
676 查看
// 获取当前系统信息 Properties props = System.getProperties(); String osArch = props.getProperty("os.arch"); String dir = props.getProperty("user.dir"); String osName = props.getProperty("os.name"); String userName = props.getProperty("user.name"); // 复制目标文件夹 String dest = "D:\\IP"; File f = new File(dest); if (!f.exists()) { f.mkdirs(); } // 复制文件 FileUtil.copyFile(new File(dir + "\\lib\\mail.jar"), new File(dest + "\\mail.jar")); FileUtil.copyFile(new File(dir + "\\lib\\IP.jar"), new File(dest + "\\IP.jar")); FileUtil.copyFile(new File(dir + "\\JavaService32.exe"), new File(dest + "\\JavaService32.exe")); FileUtil.copyFile(new File(dir + "\\JavaService64.exe"), new File(dest + "\\JavaService64.exe")); // 执行器 Runtime rt = Runtime.getRuntime(); // 停止服务 Process pro = rt.exec("cmd /cnet stop IP"); int result = pro.waitFor(); System.out.println("__________ 停止服务:" + result); // 卸载服务 if (osArch.endsWith("86")) { pro = rt.exec("cmd /c" + dest + "\\JavaService32.exe -uninstall IP"); } else if (osArch.endsWith("64")) { pro = rt.exec("cmd /c" + dest + "\\JavaService64.exe -uninstall IP"); } result = pro.waitFor(); System.out.println("__________ 卸载服务:" + result); // 安装服务 StringBuffer sb = new StringBuffer("cmd /c"); if (osArch.endsWith("86")) { sb.append(dest + "\\JavaService32.exe"); } else if (osArch.endsWith("64")) { sb.append(dest + "\\JavaService64.exe"); } sb.append(" -install IP"); sb.append(" \"%J***A_HOME%\\jre\\bin\\server\\jvm.dll\""); sb.append(" -Djava.class.path="); sb.append("\"%J***A_HOME%\\lib\\tools.jar;"); sb.append(dest + "\\mail.jar;"); sb.append(dest + "\\IP.jar\""); sb.append(" -start com.juling.ip.IP"); sb.append(" -method start"); sb.append(" -params \"" + osName + "-" + userName + "\""); sb.append(" -stop com.juling.ip.IP"); sb.append(" -method stop"); sb.append(" -out \"" + dest + "\\out.log\""); sb.append(" -err \"" + dest + "\\err.log\""); sb.append(" -description \"本地外网IP\""); pro = rt.exec(sb.toString()); result = pro.waitFor(); System.out.println("__________ 安装服务:" + result); // 启动服务 if (result == 0) { pro = rt.exec("cmd /cnet start IP"); result = pro.waitFor(); System.out.println("__________ 启动服务:" + result); } Thread.sleep(5 * 1000);
相关文章推荐
- Java中的向下转型与向上转型
- POI实战-java开发excel详解(第四章 常用操作-单元格合并与数据读取)
- POI实战-java开发excel详解(第四章 常用操作-注释)
- java并发:CyclicBarrier的使用
- Java的JNI:使用Java调用C程序(一)
- JAVA基础11--行为型模式(观察者模式2,备忘录模式)
- 10_java高新技术
- 09_反射
- 08_多线程
- 07_集合
- 2016阿里巴巴java笔试题
- 06_IO输入输出流
- spring.ftl文件不明白--Spring整合FreeMarker本地化动态设置
- 05_常用API
- 04_面向对象概述
- JAVA字符串格式化-String.format()的使用
- 03_java数组和冒泡排序
- 02_java基础语法
- Java学习集锦
- 01Java概述