根据公司需求,弄一个根据注册码使用系统的功能;是一个javaweb项目,根据客户服务器的mac地址,公司名称以及使用期限做一个限制性的功能;
做到最后一步,关闭tomcat总是不行,关闭不了。也百度了很多代码比如:
package com.calltomcat.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CallTomcat {
public static void main(String[] args) {
//String command = "E:\\apache-tomcat-7.0.76\\bin\\startup.bat";//启动tomcat命令
//String command = "E:\\apache-tomcat-7.0.76\\bin\\tomcat7w.exe";//启动Tomcat命令,仅限windows版本,无弹框
String command = "E:\\apache-tomcat-7.0.76\\bin\\shutdown.bat";//关闭tomcat命令
CallTomcat callTomcat = new CallTomcat();
try {
callTomcat.callCommand(command);
} catch (IOException e) {
System.out.println("执行命令时出错:" + e.getMessage());
}
}
/**
* 执行命令
*
* @throws IOException
*/
private void callCommand(String command) throws IOException {
Runtime runtime = Runtime.getRuntime();//返回与当前的Java应用相关的运行时对象
//指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例
Process process = runtime.exec(command);
runtime.gc();//运行垃圾回收器
String line = null;
String content = "";
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
while((line = br.readLine()) != null) {
content += line + "\r\n";
}
System.out.println(content);
}
}
这个代码是可用的,但是需要去配置tomcat的路径环境变量.这样的话就不符合公司的需求了。
最后是一个同事提醒,java有个函数是可以退出程序的
System.exit(0);
弄了一天的功能,就这样一行代码给解决了