设为首页 收藏本站
查看: 3508|回复: 0

[经验分享] java 调用windows bat脚本

  [复制链接]

尚未签到

发表于 2017-12-7 18:56:19 | 显示全部楼层 |阅读模式
  当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成。
  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()有四个重载版本 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.
  以上内容来自于网络。
  关于java调用外部程序需要注意的事项
  1. 当调用的外部命令中包含重定向(<、>),管道( | ) 命令时,exec(String command)的版本不能正确解析重定向、管道操作符。所以需要使用exec(String [] cmdArray)。
  2.永远要在调用waitFor()方法之前读取数据流
  永远要先从标准错误流中读取,然后再读取标准输出流
  3.在exec()后 立即调用waitFor()会导致进程挂起。
  java 调用windows 脚本:
  先看下面的例子,该例子实现通过调用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:中内容如下:
  echo "hello word" exit
  java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。
  cmd /c dir 是执行完dir命令后关闭命令窗口。 cmd /k dir 是执行完dir命令后不关闭命令窗口。
  cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
  cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
  可以用cmd /?查看帮助信息。
  ★CMD命令★
  1. gpedit.msc-----组策略
  2. sndrec32-------录音机
  3. Nslookup-------IP地址侦测器
  4. explorer-------打开资源管理器
  5. logoff---------注销命令
  6. tsshutdn-------60秒倒计时关机命令
  7. lusrmgr.msc----本机用户和组
  8. services.msc---本地服务设置
  9. oobe/msoobe /a----检查XP是否激活
  10. notepad--------打开记事本
  11. cleanmgr-------垃圾整理
  12. net start messenger----开始信使服务
  13. compmgmt.msc---计算机管理
  14. net stop messenger-----停止信使服务
  15. conf-----------启动netmeeting
  16. dvdplay--------DVD播放器
  17. charmap--------启动字符映射表
  18. diskmgmt.msc---磁盘管理实用程序
  19. calc-----------启动计算器
  20. dfrg.msc-------磁盘碎片整理程序
  21. chkdsk.exe-----Chkdsk磁盘检查
  22. devmgmt.msc--- 设备管理器
  23. regsvr32 /u *.dll----停止dll文件运行
  24. drwtsn32------ 系统医生
  25. rononce -p ----15秒关机
  26. dxdiag---------检查DirectX信息
  27. regedt32-------注册表编辑器
  28. Msconfig.exe---系统配置实用程序
  29. rsop.msc-------组策略结果集
  30. mem.exe--------显示内存使用情况
  31. regedit.exe----注册表
  32. winchat--------XP自带局域网聊天
  33. progman--------程序管理器
  34. winmsd---------系统信息
  35. perfmon.msc----计算机性能监测程序
  36. winver---------检查Windows版本
  37. sfc /scannow-----扫描错误并复原
  38. taskmgr-----任务管理器(2000/xp/2003)
  39. winver---------检查Windows版本
  40. wmimgmt.msc----打开windows管理体系结构(WMI)
  41. wupdmgr--------windows更新程序
  42. wscript--------windows脚本宿主设置
  43. write----------写字板
  44. winmsd---------系统信息
  45. wiaacmgr-------扫描仪和照相机向导
  46. winchat--------XP自带局域网聊天
  47. mem.exe--------显示内存使用情况
  48. Msconfig.exe---系统配置实用程序
  49. mplayer2-------简易widnows media player
  50. mspaint--------画图板
  51. mstsc----------远程桌面连接
  52. mplayer2-------媒体播放机
  53. magnify--------放大镜实用程序
  54. mmc------------打开控制台
  55. mobsync--------同步命令
  56. dxdiag---------检查DirectX信息
  57. drwtsn32------ 系统医生
  58. devmgmt.msc--- 设备管理器
  59. dfrg.msc-------磁盘碎片整理程序
  60. diskmgmt.msc---磁盘管理实用程序
  61. dcomcnfg-------打开系统组件服务
  62. ddeshare-------打开DDE共享设置
  63. dvdplay--------DVD播放器
  64. net stop messenger-----停止信使服务
  65. net start messenger----开始信使服务
  66. notepad--------打开记事本
  67. nslookup-------网络管理的工具向导
  68. ntbackup-------系统备份和还原
  69. narrator-------屏幕“讲述人”
  70. ntmsmgr.msc----移动存储管理器
  71. ntmsoprq.msc---移动存储管理员操作请求
  72. netstat -an----(TC)命令检查接口
  73. syncapp--------创建一个公文包
  74. sysedit--------系统配置编辑器
  75. sigverif-------文件签名验证程序
  76. sndrec32-------录音机
  77. shrpubw--------创建共享文件夹
  78. secpol.msc-----本地安全策略
  79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
  80. services.msc---本地服务设置
  81. Sndvol32-------音量控制程序
  82. sfc.exe--------系统文件检查器
  83. sfc /scannow---windows文件保护
  84. tsshutdn-------60秒倒计时关机命令
  84. tsshutdn-------60秒倒计时关机命令
  85. tourstart------xp简介(安装完成后出现的漫游xp程序)
  86. taskmgr--------任务管理器
  87. eventvwr-------事件查看器
  88. eudcedit-------造字程序
  89. explorer-------打开资源管理器
  90. packager-------对象包装程序
  91. perfmon.msc----计算机性能监测程序
  92. progman--------程序管理器
  93. regedit.exe----注册表
  94. rsop.msc-------组策略结果集
  95. regedt32-------注册表编辑器
  96. rononce -p ----15秒关机
  97. regsvr32 /u *.dll----停止dll文件运行
  98. regsvr32 /u zipfldr.dll------取消ZIP支持
  99. cmd.exe--------CMD命令提示符
  100. chkdsk.exe-----Chkdsk磁盘检查
  101. certmgr.msc----证书管理实用程序
  102. calc-----------启动计算器
  103. charmap--------启动字符映射表
  104. cliconfg-------SQL SERVER 客户端网络实用程序
  105. Clipbrd--------剪贴板查看器
  106. conf-----------启动netmeeting
  107. compmgmt.msc---计算机管理
  108. cleanmgr-------垃圾整理
  109. ciadv.msc------索引服务程序
  110. osk------------打开屏幕键盘
  111. odbcad32-------ODBC数据源管理器
  112. oobe/msoobe /a----检查XP是否激活
  113. lusrmgr.msc----本机用户和组
  114. logoff---------注销命令
  115. iexpress-------木马捆绑工具,系统自带
  116. Nslookup-------IP地址侦测器
  117. fsmgmt.msc-----共享文件夹管理器
  118. utilman--------辅助工具管理器
  119. gpedit.msc-----组策略等命令。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421888-1-1.html 上篇帖子: Ubuntu 配置NTP Server 下篇帖子: windows平台UI自动化测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表