博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在window下, Java调用执行bat脚本
阅读量:5019 次
发布时间:2019-06-12

本文共 2083 字,大约阅读时间需要 6 分钟。

参考博客: 

最近一段时间用到了Java去执行window下的bat脚本, 这里简单记录一下:

我这里是先判断bat脚本是否存在, 然后去决定是否执行bat脚本,

直接上代码:

下面是我测试的bat脚本, 就输出一句话, 把文件命令为PostStartupScript.bat:

echo "hello word"
package com.test;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class Test {                public static void main(String[] args) {        // TODO Auto-generated method stub        String batPath = "C:/Philips/SIServer/PostStartupScript.bat"; // 把你的bat脚本路径写在这里        File batFile = new File(batPath);        boolean batFileExist = batFile.exists();        System.out.println("batFileExist:" + batFileExist);        if (batFileExist) {            callCmd(batPath);        }    }        private static void  callCmd(String locationCmd){        StringBuilder sb = new StringBuilder();        try {            Process child = Runtime.getRuntime().exec(locationCmd);            InputStream in = child.getInputStream();            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(in));            String line;            while((line=bufferedReader.readLine())!=null)            {                sb.append(line + "\n");            }               in.close();            try {                child.waitFor();            } catch (InterruptedException e) {                System.out.println(e);            }            System.out.println("sb:" + sb.toString());            System.out.println("callCmd execute finished");                   } catch (IOException e) {            System.out.println(e);        }     }}

运行结果如下:

batFileExist:truesb:D:\TestJava>echo "hello word" "hello word"callCmd execute finished

这里是在不打开任何窗口下运行的, 非常适合那些在后台需要执行bat脚本的程序.

如果想让程序打开窗口去运行bat脚本, 可以使用如下的命令:

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 /k start C:/Philips/SIServer/PostStartupScript.bat 然后会弹出新的窗口, 执行bat脚本.

 

 

 

转载于:https://www.cnblogs.com/xumBlog/p/11064109.html

你可能感兴趣的文章
Codeforces Round #327 (Div. 2)
查看>>
ODAC(V9.5.15) 学习笔记(三)TOraSession(2)
查看>>
SQL中的replace函数
查看>>
java中的类型安全问题-Type safety: Unchecked cast from Object to ...
查看>>
如何解决最后一个尾注引用显示与致谢混为一谈的问题-下
查看>>
css文本样式text、字体样式font
查看>>
python判断图片是否损坏
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
The Ctrl & CapsLock `problem'
查看>>
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
Java从零开始学十三(封装)
查看>>