在java中如何利用代码执行一个.bat文件或.exe文件

在java中如何利用代码执行一个.bat文件或.exe文件

刘锡涛
刘锡涛
281
编辑于2012-08-25
评论 (0)链接2012-08-25 
  
public class Test {
public static void main(String[] args) throws Exception {

String[] cmd = { "C:\\TVCC.exe" };
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
}
}
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-08-25

回复一个带返回值的,Windows 与 Linux 调用的解释器不一样哦

  
    /** 执行 shell 命令之后返回 String 类型的结果 */
public static StringexecShellStr(String cmd)
{
// Windows 命令行:
String[] cmdStrings = new String[] {"cmd", "/c", cmd};
// 类Unix 命令行:
// String[] cmdStrings = new String[] {"sh", "-c", cmd};
String retString = "";

try
{
Process process = Runtime.getRuntime().exec(cmdStrings);
BufferedReader stdout =
new BufferedReader(new InputStreamReader(
process.getInputStream()), 7777);
BufferedReader stderr =
new BufferedReader(new InputStreamReader(
process.getErrorStream()), 7777);

String line = null;

while ((null != (line = stdout.readLine()))
|| (null != (line = stderr.readLine())))
{
if (false == isStringEmpty(line))
{
retString += line + "\n";
}
}

}
catch (Exception e)
{
e.printStackTrace();
}

return retString;
}

默认是 Windows 的,比如查看当前的系统架构的方法:

  
System.out.println(execShellStr("echo %PROCESSOR_ARCHITECTURE%"));

祝好,
斑驳敬上

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-11-23

public static String readConsole(String path, Boolean isPrettify)
throws IOException {
StringBuffer cmdout = new StringBuffer();
Process process = Runtime.getRuntime().exec(path);

InputStream fis = process.getInputStream();
InputStream fisErr = process.getErrorStream();
BufferedReader br = new BufferedReader(new InputStreamReader(fis,
"GB2312"));
BufferedReader brErr = new BufferedReader(new InputStreamReader(fisErr,
"GB2312"));
String line = null;
if (isPrettify == null || isPrettify) {
while ((line = br.readLine()) != null||(line = brErr.readLine())!=null) {
cmdout.append(line);
cmdout.append("<br>");
}
} else {
while ((line = br.readLine()) != null) {
cmdout.append(line+"<br>")
.append(System.getProperty("line.separator"));
}
}
System.out.println("执行系统命令后的结果为:\n" + cmdout.toString());

return cmdout.toString().trim();

}
参数path为bat的路径
isPrettify 为ture 就可以
返回值为执行命令的结果

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-11-26
德问是一个专业的编程问答社区,请 登录注册 后再提交答案