您的位置:首页 > 编程语言 > Java开发

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: