關(guān)閉計(jì)算機(jī)
目前成都創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、蘭西網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
OSVERSIONINFO OsVersionInfo; //包含操作系統(tǒng)版本信息的數(shù)據(jù)結(jié)構(gòu)
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(OsVersionInfo); //獲取操作系統(tǒng)版本信息
if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
//Windows98,調(diào)用ExitWindowsEx()函數(shù)重新啟動(dòng)計(jì)算機(jī)
DWORD dwReserved;
ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改變第一個(gè)參數(shù),實(shí)現(xiàn)注銷(xiāo)用戶、
//關(guān)機(jī)、關(guān)閉電源等操作
// 退出前的一些處理程序
}
重啟計(jì)算機(jī)
typedef int (CALLBACK *SHUTDOWNDLG)(int); //顯示關(guān)機(jī)對(duì)話框函數(shù)的指針
HINSTANCE hInst = LoadLibrary("shell32.dll"); //裝入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32.dll庫(kù)中顯示關(guān)機(jī)對(duì)話框函數(shù)的指針
if(hInst != NULL)
{
//獲得函數(shù)的地址并調(diào)用之
ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
(*ShutDownDialog)(0);
}
Lsass.exe 很類似
tomcat熱部署只針對(duì)class文件,你修改其他文件確實(shí)不能自動(dòng)熱部署。
中間件啟動(dòng)的時(shí)候就裝載好的文件只能重啟tomcat了或通過(guò)tomcat manager來(lái)重載。
如果在程序中有通過(guò)流的形式讀取文件的話,那么手動(dòng)修改后重新觸發(fā)讀取動(dòng)作,能生效。
你這種情況要么重啟,要么把裝載properties這些文件的動(dòng)作改成代碼來(lái)操作,而不是中間件啟動(dòng)時(shí)自動(dòng)裝載。
下面兩篇文章可能會(huì)幫到你:
鏈接里面有人介紹apache的common包里面有解決方案。
因?yàn)槠綍r(shí)Tomcat在windows上的重啟一般都是用vbs或者是 .bat腳本來(lái)寫(xiě)的.只要做能做到用JAVA調(diào)用這兩種 腳本就可以了. 在JAVA的API里面.可以用代碼控制本地的可執(zhí)行文件 而不能直接調(diào)用腳本.因此需要把腳本轉(zhuǎn) 換成可執(zhí)行文件可以下載 visualVBS來(lái)把vbs腳本轉(zhuǎn)換成.exe .bat轉(zhuǎn)換的腳本更多.網(wǎng)上搜索一下就能找到了. 之后在線程里面直接調(diào)用JAVA API里面的執(zhí)行代碼就可以 做到重啟TOMCAT了.DEMO: 首先是重啟腳本,寫(xiě)成.vbs set WshShell=WScript.CreateObject("WScript.Shell") WshShell.Run("net stop tomcat5") WScript.Sleep(10000) WshShell.Run("net start tomcat5") 然后用visualVBS轉(zhuǎn)換成.exe文件 然后做一個(gè)類,重啟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
先寫(xiě)一個(gè)shell,java代碼里調(diào)用shell:
String shellPath="123.sh";
Process
process = Runtime.getRuntime().exec("./"+shellPath);
電腦重啟么????
processbuiler,process,執(zhí)行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?();
//?}
}
}