java 调用windows bat脚本
當(dāng)我們需要在java程序中調(diào)用外部程序,我們可用通過(guò)Runtime.exec()調(diào)用來(lái)完成。
The class java.lang.Runtime features a static method called getRuntime(), which retrieves the current Java Runtime Environment. That is the only way to obtain a reference to the Runtime object. With that reference, you can run external programs by invoking the Runtime class's exec() method. Developers often call this method to launch a browser for displaying a help page in HTML.
exec()有四個(gè)重載版本 There are four overloaded versions of the exec() command:
public Process exec(String command); public Process exec(String [] cmdArray);
public Process exec(String command, String [] envp); public Process exec(String [] cmdArray, String [] envp);
For each of these methods, a command -- and possibly a set of arguments -- is passed to an operating-system-specific function call. This subsequently creates an operating-system-specific process (a running program) with a reference to a Process class returned to the Java VM. The Process class is an abstract class, because a specific subclass of Process exists for each operating system. You can pass three possible input parameters into these methods: A single string that represents both the program to execute and any arguments to that program An array of strings that separate the program from its arguments An array of environment variables Pass in the environment variables in the form name=value. If you use the version of exec() with a single string for both the program and its arguments, note that the string is parsed using white space as the delimiter via the StringTokenizer class.
以上內(nèi)容來(lái)自于網(wǎng)絡(luò)。
關(guān)于java調(diào)用外部程序需要注意的事項(xiàng)
?1. 當(dāng)調(diào)用的外部命令中包含重定向(<、>),管道( | ) 命令時(shí),exec(String command)的版本不能正確解析重定向、管道操作符。所以需要使用exec(String [] cmdArray)。
?2.永遠(yuǎn)要在調(diào)用waitFor()方法之前讀取數(shù)據(jù)流
?永遠(yuǎn)要先從標(biāo)準(zhǔn)錯(cuò)誤流中讀取,然后再讀取標(biāo)準(zhǔn)輸出流
?3.在exec()后 立即調(diào)用waitFor()會(huì)導(dǎo)致進(jìn)程掛起。
?java 調(diào)用windows 腳本:
先看下面的例子,該例子實(shí)現(xiàn)通過(guò)調(diào)用bat腳本打印“hellword”。代碼如下:
| import?java.io.IOException; import?java.io.InputStream; public?class?callbat { ?? ?? ??????public?static?void?main(String args[]){ ?????????callCmd("C:/run.bat"); ??????} ??????public?static?void??callCmd(String locationCmd){ ??????????try?{ ??????????Process child = Runtime.getRuntime().exec(locationCmd); ??????????InputStream in = child.getInputStream(); ??????????int?c; ??????????while?((c = in.read()) != -1) { ??????????????System.out.println((char)c); ??????} ???????in.close(); ???????try?{ ???????????child.waitFor(); ???????} catch?(InterruptedException e) { ???????????e.printStackTrace(); ???????} ???????System.out.println("done"); ?????} catch?(IOException e) { ???????????e.printStackTrace(); ?????} ?} ?} |
run.bat:中內(nèi)容如下:
echo "hello word" exit
?
java的Runtime.getRuntime().exec(commandStr)可以調(diào)用執(zhí)行cmd指令。
cmd /c dir 是執(zhí)行完dir命令后關(guān)閉命令窗口。 cmd /k dir 是執(zhí)行完dir命令后不關(guān)閉命令窗口。
cmd /c start dir 會(huì)打開一個(gè)新窗口后執(zhí)行dir指令,原窗口會(huì)關(guān)閉。
cmd /k start dir 會(huì)打開一個(gè)新窗口后執(zhí)行dir指令,原窗口不會(huì)關(guān)閉。
可以用cmd /?查看幫助信息。
★CMD命令★
1. gpedit.msc-----組策略
2. sndrec32-------錄音機(jī)
3. Nslookup-------IP地址偵測(cè)器
4. explorer-------打開資源管理器
5. logoff---------注銷命令
6. tsshutdn-------60秒倒計(jì)時(shí)關(guān)機(jī)命令
7. lusrmgr.msc----本機(jī)用戶和組
8. services.msc---本地服務(wù)設(shè)置
9. oobe/msoobe /a----檢查XP是否激活
10. notepad--------打開記事本
11. cleanmgr-------垃圾整理
12. net start messenger----開始信使服務(wù)
13. compmgmt.msc---計(jì)算機(jī)管理
14. net stop messenger-----停止信使服務(wù)
15. conf-----------啟動(dòng)netmeeting
16. dvdplay--------DVD播放器
17. charmap--------啟動(dòng)字符映射表
18. diskmgmt.msc---磁盤管理實(shí)用程序
19. calc-----------啟動(dòng)計(jì)算器
20. dfrg.msc-------磁盤碎片整理程序
21. chkdsk.exe-----Chkdsk磁盤檢查
22. devmgmt.msc--- 設(shè)備管理器
23. regsvr32 /u *.dll----停止dll文件運(yùn)行
24. drwtsn32------ 系統(tǒng)醫(yī)生
25. rononce -p ----15秒關(guān)機(jī)
26. dxdiag---------檢查DirectX信息
27. regedt32-------注冊(cè)表編輯器
28. Msconfig.exe---系統(tǒng)配置實(shí)用程序
29. rsop.msc-------組策略結(jié)果集
30. mem.exe--------顯示內(nèi)存使用情況
31. regedit.exe----注冊(cè)表
32. winchat--------XP自帶局域網(wǎng)聊天
33. progman--------程序管理器
34. winmsd---------系統(tǒng)信息
35. perfmon.msc----計(jì)算機(jī)性能監(jiān)測(cè)程序
36. winver---------檢查Windows版本
37. sfc /scannow-----掃描錯(cuò)誤并復(fù)原
38. taskmgr-----任務(wù)管理器(2000/xp/2003)
39. winver---------檢查Windows版本
40. wmimgmt.msc----打開windows管理體系結(jié)構(gòu)(WMI)
41. wupdmgr--------windows更新程序
42. wscript--------windows腳本宿主設(shè)置
43. write----------寫字板
44. winmsd---------系統(tǒng)信息
45. wiaacmgr-------掃描儀和照相機(jī)向?qū)?/p>
46. winchat--------XP自帶局域網(wǎng)聊天
47. mem.exe--------顯示內(nèi)存使用情況
48. Msconfig.exe---系統(tǒng)配置實(shí)用程序
49. mplayer2-------簡(jiǎn)易widnows media player
50. mspaint--------畫圖板
51. mstsc----------遠(yuǎn)程桌面連接
52. mplayer2-------媒體播放機(jī)
53. magnify--------放大鏡實(shí)用程序
54. mmc------------打開控制臺(tái)
55. mobsync--------同步命令
56. dxdiag---------檢查DirectX信息
57. drwtsn32------ 系統(tǒng)醫(yī)生
58. devmgmt.msc--- 設(shè)備管理器
59. dfrg.msc-------磁盤碎片整理程序
60. diskmgmt.msc---磁盤管理實(shí)用程序
61. dcomcnfg-------打開系統(tǒng)組件服務(wù)
62. ddeshare-------打開DDE共享設(shè)置
63. dvdplay--------DVD播放器
64. net stop messenger-----停止信使服務(wù)
65. net start messenger----開始信使服務(wù)
66. notepad--------打開記事本
67. nslookup-------網(wǎng)絡(luò)管理的工具向?qū)?/p>
68. ntbackup-------系統(tǒng)備份和還原
69. narrator-------屏幕“講述人”
70. ntmsmgr.msc----移動(dòng)存儲(chǔ)管理器
71. ntmsoprq.msc---移動(dòng)存儲(chǔ)管理員操作請(qǐng)求
72. netstat -an----(TC)命令檢查接口
73. syncapp--------創(chuàng)建一個(gè)公文包
74. sysedit--------系統(tǒng)配置編輯器
75. sigverif-------文件簽名驗(yàn)證程序
76. sndrec32-------錄音機(jī)
77. shrpubw--------創(chuàng)建共享文件夾
78. secpol.msc-----本地安全策略
79. syskey---------系統(tǒng)加密,一旦加密就不能解開,保護(hù)windows xp系統(tǒng)的雙重密碼
80. services.msc---本地服務(wù)設(shè)置
81. Sndvol32-------音量控制程序
82. sfc.exe--------系統(tǒng)文件檢查器
83. sfc /scannow---windows文件保護(hù)
84. tsshutdn-------60秒倒計(jì)時(shí)關(guān)機(jī)命令
?84. tsshutdn-------60秒倒計(jì)時(shí)關(guān)機(jī)命令
85. tourstart------xp簡(jiǎn)介(安裝完成后出現(xiàn)的漫游xp程序)
86. taskmgr--------任務(wù)管理器
87. eventvwr-------事件查看器
88. eudcedit-------造字程序
89. explorer-------打開資源管理器
90. packager-------對(duì)象包裝程序
91. perfmon.msc----計(jì)算機(jī)性能監(jiān)測(cè)程序
92. progman--------程序管理器
93. regedit.exe----注冊(cè)表
94. rsop.msc-------組策略結(jié)果集
95. regedt32-------注冊(cè)表編輯器
96. rononce -p ----15秒關(guān)機(jī)
97. regsvr32 /u *.dll----停止dll文件運(yùn)行
98. regsvr32 /u zipfldr.dll------取消ZIP支持
99. cmd.exe--------CMD命令提示符
100. chkdsk.exe-----Chkdsk磁盤檢查
101. certmgr.msc----證書管理實(shí)用程序
102. calc-----------啟動(dòng)計(jì)算器
103. charmap--------啟動(dòng)字符映射表
104. cliconfg-------SQL SERVER 客戶端網(wǎng)絡(luò)實(shí)用程序
105. Clipbrd--------剪貼板查看器
106. conf-----------啟動(dòng)netmeeting
107. compmgmt.msc---計(jì)算機(jī)管理
108. cleanmgr-------垃圾整理
109. ciadv.msc------索引服務(wù)程序
110. osk------------打開屏幕鍵盤
111. odbcad32-------ODBC數(shù)據(jù)源管理器
112. oobe/msoobe /a----檢查XP是否激活
113. lusrmgr.msc----本機(jī)用戶和組
114. logoff---------注銷命令
115. iexpress-------木馬捆綁工具,系統(tǒng)自帶
116. Nslookup-------IP地址偵測(cè)器
117. fsmgmt.msc-----共享文件夾管理器
118. utilman--------輔助工具管理器
119. gpedit.msc-----組策略等命令。
轉(zhuǎn)載于:https://www.cnblogs.com/jing1617/p/6430141.html
總結(jié)
以上是生活随笔為你收集整理的java 调用windows bat脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大型网站技术架构:核心原理与案例分析阅读
- 下一篇: 再烦能有多烦