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

java 调用windows bat脚本的更多相关文章

  1. 在window下, Java调用执行bat脚本

    参考博客: https://www.cnblogs.com/jing1617/p/6430141.html 最近一段时间用到了Java去执行window下的bat脚本, 这里简单记录一下: 我这里是先 ...

  2. windows bat脚本编写

    windows批处理 (cmd/bat) 编程详解 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码 ...

  3. java 调用bash shell脚本阻塞的小问题的解决

    java  调用bash shell脚本阻塞的小问题的解决 背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结 ...

  4. Java调用windows命令

    JAVA调用windows的cmd命令 用起来会让程序变得更加简洁明了,非常实用. 核心就是使用 Runtime类. cmd的xcopy就有很强大的文件夹,文件处理功能. 下面就以xcopy来说明,如 ...

  5. java 调用windows的COM组件举例(使用JACOB)

    java 调用windows的COM组件举例(使用JACOB) (转自这里) 最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你 ...

  6. java调用windows的wmi获取设备性能数据

    java调用windows的wmi获取监控数据(100%纯java调用windows的wmi获取监控数据) 转:http://my.oschina.net/noahxiao/blog/73163 纯j ...

  7. Windows bat脚本的for语句

    Windows bat脚本的for语句基本形态如下: 在cmd窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do ...

  8. windows bat脚本实现ftp自动下载 删除

    现在有一个需求就是把远程某个文件下面的图片,下载到本地,并且删除下载成功的的文件,而且远程目录下的那个图片会随时增加.假设一下如果所有的脚本都写好了,那么就需要调用windows上的计划任务定时执行脚 ...

  9. 在windows bat脚本(batch)中延时

    编写bat脚本时,有事我们希望在指令和指令之间,加入延时.例如当一条指令执行后,windows需要一定时间来响应的情况. 以下是一种实现方法,通过ping 指令来实现,5表示ping5次,就是延时5秒 ...

随机推荐

  1. 基于GUI的简单聊天室01

    运用了Socket编程,gui,流的读入和写出,线程控制等 思路: 1.首先是在客户端中先建立好聊天的GUI 2.建立服务器端,设置好端口号(用SocketServer),其中需要两个boolean变 ...

  2. Tomcat 域名绑定多个Host配置要点

    一.在server.xml中添加Host节点,name就是需要绑定的域名,多个域名在Host节点下建立<Alias></Alias>子节点,可建立多个. <Engine ...

  3. define 常量的定义和读取

    define(‘常量’,‘常量值’)----------------------define来定义常量, echo 也能输出常量, get_defined_constants(true)------- ...

  4. A+B for Input-Output Practice (VIII)

    A+B for Input-Output Practice (VIII) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3276 ...

  5. mac 搭建Vue开发环境

    1: 使用的各个工具的版本为: Homebrew 1node.js npm  webpack Vue 2: 安装brew 打开终端运行一下命令 /usr/bin/ruby -e "$(cur ...

  6. EasyTouch基本用法

    EasyTouch基本用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 hierarchy (层次面 ...

  7. BZOJ3864: Hero meet devil【dp of dp】

    Description There is an old country and the king fell in love with a devil. The devil always asks th ...

  8. rabbitmq学习(五):springboot整合rabbitmq

    一.Springboot对rabbitmq的支持 springboot提供了对rabbitmq的支持,并且大大简化了rabbitmq的相关配置.在springboot中,框架帮我们将不同的交换机划分出 ...

  9. css里涉及到定位相关的example实例

    一,情景导入:正常文档流:指的是HTML文档在进行内容布局时所遵循的从左到右,从上到下的表现方式.HTML中的大多数元素都处在正常的文档流中,而一个元素要脱离正常流的唯一途径就是浮动或定位.二,定位的 ...

  10. PyCharm首次使用(Hell world!)

    作为PyCharm编辑器的起步,我们理所当然的先写一个Hello word,并运行它.(此文献给对IDE不熟悉的初学者) 1,新建一个项目 File --> New Project... 2,新 ...