因为平时Tomcat在windows上的重启一般都是用vbs或者是 .bat脚本来写的.只要做能做到用JAVA调用这两种 脚本就可以了. 在JAVA的API里面.可以用代码控制本地的可执行文件 而不能直接调用脚本.因此需要把脚本转 换成可执行文件可以下载 visualVBS来把vbs脚本转换成.exe .bat转换的脚本更多.网上搜索一下就能找到了. 之后在线程里面直接调用JAVA API里面的执行代码就可以 做到重启TOMCAT了.DEMO: 首先是重启脚本,写成.vbs set WshShell=WScript.CreateObject("WScript.Shell") WshShell.Run("net stop tomcat5") WScript.Sleep(10000) WshShell.Run("net start tomcat5") 然后用visualVBS转换成.exe文件 然后做一个类,重启Tomcat专用 package com.uf.tool.util; public class TomcatReset { private String tomcat=""; public TomcatReset() {Configconfig=Config.getConfig(); tomcat=config.getProperties("tomcat");} public void tomcatRun(){try{ System.out.println("the command is:"+tomcat); Process child = Runtime.getRuntime().exec(tomcat); } catch
创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为相山企业提供专业的网站建设、成都网站建设,相山网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
关闭计算机
OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(OsVersionInfo); //获取操作系统版本信息
if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
//Windows98,调用ExitWindowsEx()函数重新启动计算机
DWORD dwReserved;
ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改变第一个参数,实现注销用户、
//关机、关闭电源等操作
// 退出前的一些处理程序
}
重启计算机
typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针
HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针
if(hInst != NULL)
{
//获得函数的地址并调用之
ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
(*ShutDownDialog)(0);
}
Lsass.exe 很类似
电脑重启么????
processbuiler,process,执行doc命令即可,so easy
给你,小挫
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Processing
{
public static void main ( String[] args )
{
try
{
// open cmd
// Process process = Runtime.getRuntime ().exec (new String[] {
// "cmd", "/c", "dir" }, null, new File ("e:/"));
Process process = Runtime.getRuntime ().exec ("cmd");
InputStreamReader isr = new InputStreamReader (process.getInputStream (), "gbk");
BufferedReader br = new BufferedReader (isr);
// next command
OutputStreamWriter osw = new OutputStreamWriter (process.getOutputStream ());
BufferedWriter bw = new BufferedWriter (osw);
bw.write ("shutdown -r -f");
bw.newLine ();
bw.flush ();
bw.close ();
osw.close ();
// read
String line = null;
while (null != ( line = br.readLine () ))
{
System.out.println (line);
}
// wait for termination
// process.waitFor ();
// process.exitValue ();
process.destroy ();
br.close ();
isr.close ();
}
catch (IOException e)
{
e.printStackTrace ();
}
// catch (InterruptedException e)
// {
// e.printStackTrace ();
// }
}
}
tomcat热部署只针对class文件,你修改其他文件确实不能自动热部署。
中间件启动的时候就装载好的文件只能重启tomcat了或通过tomcat
manager来重载。
如果在程序中有通过流的形式读取文件的话,那么手动修改后重新触发读取动作,能生效。
你这种情况要么重启,要么把装载properties这些文件的动作改成代码来操作,而不是中间件启动时自动装载。
下面两篇文章可能会帮到你:
链接里面有人介绍apache的common包里面有解决方案。