zoukankan      html  css  js  c++  java
  • java 调用windows bat 脚本

    当我们需要在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-----组策略等命令。

  • 相关阅读:
    [C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ
    [安卓] 13、安卓蓝牙定位(一)——如何周期性获得蓝牙节点信号强度?
    [stm32] NRF24L01+USART搞定有线和无线通信
    [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏
    [安卓] 11、串口蓝牙·将软硬结合进行到底
    [安卓] 10、悬浮窗与获取其他任务信息
    [安卓] 9、线程、VIEW、消息实现从TCP服务器获取数据动态加载显示
    [安卓] 8、VIEW和SURFACEVIEW游戏框架
    [安卓] 7、页面跳转和Intent简单用法
    Git常用命令记录
  • 原文地址:https://www.cnblogs.com/guiyi/p/3229094.html
Copyright © 2011-2022 走看看