import java.io.BufferedReader;
創(chuàng)新互聯(lián)建站是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),微信平臺(tái)小程序開發(fā),10多年建站對(duì)酒樓設(shè)計(jì)等多個(gè)行業(yè),擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn)。
import java.io.InputStreamReader;
public class RunBat {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("D:\\run.bat");
BufferedReader read = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str = null;
while ((str = read.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
意思是指編完程序后,為檢驗(yàn)其是否沒(méi)有紕漏,代入各種情況,并將其輸出結(jié)果與標(biāo)準(zhǔn)答案比對(duì),如果全部通過(guò),那么就ok了。
補(bǔ)充:編程就是讓計(jì)算機(jī)為解決某個(gè)問(wèn)題而使用某種程序設(shè)計(jì)語(yǔ)言編寫程序代碼,并最終得到相應(yīng)結(jié)果的過(guò)程。
為了使計(jì)算機(jī)能夠理解人的意圖,人類就必須要將需解決的問(wèn)題的思路、方法、和手段通過(guò)計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算機(jī)之間交流的過(guò)程就是編程。
編程:設(shè)計(jì)具備邏輯流動(dòng)作用的一種"可控體系"【注:編程不一定是針對(duì)計(jì)算機(jī)程序而言的,針對(duì)具備邏輯計(jì)算力的體系,都可以算編程】
例子:①比如編寫一段代碼程序②編寫一個(gè)控制設(shè)備體系
步驟:
1、在cmd中切換到編寫的代碼所保存的目錄下;
2、在cmd中輸入javac然后點(diǎn)空格,再點(diǎn)擊文件名和包括后綴名確定后,在存放編寫代碼的文件下會(huì)生成一個(gè)class的字節(jié)碼文件;
3、在cmd中輸入java然后點(diǎn)空格,輸入第二步中生成的字節(jié)碼的文件名,不需要后綴名,點(diǎn)擊確定即可運(yùn)行代碼。
代碼就是程序員用開發(fā)工具所支持的語(yǔ)言寫出來(lái)的源文件,是一組由字符、符號(hào)或信號(hào)碼元以離散形式表示信息的明確的規(guī)則體系。計(jì)算機(jī)代碼稱為源代碼,是相對(duì)目標(biāo)代碼和可執(zhí)行代碼而言的。 源代碼就是用匯編語(yǔ)言和高級(jí)語(yǔ)言寫出來(lái)的地代碼,目標(biāo)代碼是指源代碼經(jīng)過(guò)編譯程序產(chǎn)生的能被cpu直接識(shí)別二進(jìn)制代碼。
1、跑批就是每天必須單獨(dú)批量計(jì)算的事情,比如我的瀏覽記錄只保留30天以內(nèi)的,那么我可以起個(gè)程序,每天跑一次,把瀏覽記錄表里30天之前的記錄刪掉。
2、跑批不光是java,任何程序開發(fā)或者非程序開發(fā)都有這個(gè)概念。
3、java跑批可以用job實(shí)現(xiàn),或者linux機(jī)器的crontab,或者windows下的定時(shí)任務(wù)等。
定期清理linux服務(wù)器日志文件的幾個(gè)思路
1,在跑批程序中,用java代碼調(diào)用shell腳本;
2,在跑批程序中,用純java代碼實(shí)現(xiàn),也就是使用java的文件操作類File;
3,純shell腳本方式,使用linux服務(wù)器的調(diào)度程序調(diào)用shell腳本;
結(jié)合最近的項(xiàng)目,這里提供一個(gè)示例。首先,我們是在跑批項(xiàng)目中實(shí)現(xiàn)的定期清理日志功能,
因?yàn)槲覀冇信芘?xiàng)目,使用的是Control M進(jìn)行調(diào)度,所以這種方式還是很方便的。
第一步:寫shell腳本
find /home/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
腳本其實(shí)很簡(jiǎn)單,一行代碼就夠了,把這個(gè)代碼放在一個(gè)shell文件中,然后放在服務(wù)器的
指定目錄下,等待java程序調(diào)用。
第二步:寫java代碼,調(diào)用shell腳本,示例代碼僅提供思路,請(qǐng)大家自己調(diào)試
// 設(shè)置可執(zhí)行權(quán)限
String commond = "chmod 777 clearLogFileOnTime.sh";
Process proc = Runtime.getRuntime().exec(commond);
proc.waitFor();?
// 執(zhí)行shell腳本
commond = "bash clearLogFileOnTime.sh";
proc = Runtime.getRuntime().exec(commond);
第三步:配置Control M,進(jìn)行作業(yè)調(diào)度
關(guān)于Control M的配置不再贅述,主要就是設(shè)置跑批程序的執(zhí)行時(shí)間,以及一些其他參數(shù)。