Java执行bat批处理文件(上)
2016-01-23 20:10
288 查看
bat文件是DOS下的批处理文件,它是无格式的文本文件,包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
博主最近想要自己做一个笔记本开wifi的小程序,其实也就是通过cmd的命令来开wifi,只是把命令保存在了批处理文件里,然后通过java来调用执行bat文件,但是遇到的问题是每次调用都会弹出cmd’的黑框,通过查找资料这个问题也得到了解决。下面将如何用java调用执行批处理文件以及隐藏cmd黑框总结一下。
1. java调用cmd执行批处理文件
新建一个java项目,将我们要调用的bat文件保存在项目文件夹下,下面写好了一个方法,需要传递一个java调用执行bat的命令给该方法。
调用写好的方法,命令格式如下:
2.cmd执行时弹出黑框且不退出的解决办法
在bat文件最后加上
exit
虽然用这种方法即可实现执行后退出,但是使用这种办法黑框还是会弹出来,还是想找到更好的方法。目前已经找到更好的解决办法,将在下一篇博客中进行分析。
博主最近想要自己做一个笔记本开wifi的小程序,其实也就是通过cmd的命令来开wifi,只是把命令保存在了批处理文件里,然后通过java来调用执行bat文件,但是遇到的问题是每次调用都会弹出cmd’的黑框,通过查找资料这个问题也得到了解决。下面将如何用java调用执行批处理文件以及隐藏cmd黑框总结一下。
1. java调用cmd执行批处理文件
新建一个java项目,将我们要调用的bat文件保存在项目文件夹下,下面写好了一个方法,需要传递一个java调用执行bat的命令给该方法。
public void run_cmd(String strcmd) { // Runtime rt = Runtime.getRuntime(); //Runtime.getRuntime()返回当前应用程序的Runtime对象 Process ps = null; //Process可以控制该子进程的执行或获取该子进程的信息。 try { ps = rt.exec(strcmd); //该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。 ps.waitFor(); //等待子进程完成再往下执行。 } catch (IOException e1) { e1.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } int i = ps.exitValue(); //接收执行完毕的返回值 if (i == 0) { System.out.println("执行完成."); } else { System.out.println("执行失败."); } ps.destroy(); //销毁子进程 ps = null; }
调用写好的方法,命令格式如下:
String strcmd = "cmd /c start 你的文件名.bat"; //调用我们在项目目录下准备好的bat文件,如果不是在项目目录下,则把“你的文件名.bat”改成文件所在路径。 run_cmd(strcmd); //调用上面的run_cmd方法执行操作
2.cmd执行时弹出黑框且不退出的解决办法
在bat文件最后加上
exit
虽然用这种方法即可实现执行后退出,但是使用这种办法黑框还是会弹出来,还是想找到更好的方法。目前已经找到更好的解决办法,将在下一篇博客中进行分析。
相关文章推荐
- struts2 结合extjs实现的一个登录实例
- 用标准Struts2+mvc写的用户管理
- 使用myEclipse来生成hibernate 持久化类和映射文件
- Java引用类型具体解释
- 关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
- Java-集合框架Collection之List(一)
- activiti(一)spring4+hibernate4
- springmvc头部配置文件
- EGit /用户指南
- Java Sftp上传下载文件
- 《Java虚拟机原理图解》5. JVM类加载器机制与类加载过程
- Java中的流
- 使用spring @Scheduled注解执行定时任务
- Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建
- Springmvc学习笔记(4)之复杂参数类型绑定、校验、数据回显和异常处理
- 关于在eclipse中创建servlet
- [Java 并发] Java并发编程实践 思维导图 - 第二章 线程安全性
- java中有三种移位运算符
- eclipse Hibernate Tools插件错误:Fetching children of Database
- 记问题排查:java进程未正常退出