java执行bat文件的问题

packagecom.polyphylla;importjava.io.IOException;importjava.io.InputStreamReader;impor... package com.polyphylla;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

public class WinBat {
public static void main(String[] args) throws IOException,
InterruptedException {
Process p = Runtime.getRuntime().exec(
System.getProperty("user.dir") + "/wmic.bat");
p.getOutputStream().close();
LineNumberReader br = new LineNumberReader(new InputStreamReader(p
.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}

wmic.bat的内容是:
wmic process get Caption,CommandLine,KernelModeTime,ProcessId,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount

执行结果是无限循环输出的:
F:\Workspaces\eclipse3.4\TestDLL>wmic process get Caption,CommandLine,KernelModeTime,ProcessId,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount

F:\Workspaces\eclipse3.4\TestDLL>wmic process get Caption,CommandLine,KernelModeTime,ProcessId,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount

我想要的结果是:正确的执行结果

各位帮忙看一看,解决后另有加分。
展开
 我来答
shenaodong
2011-09-23 · TA获得超过960个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:789万
展开全部
问题很简单,你把批处理文件的名字wmic.bat改掉,因为与wmic.exe冲突了,默认执行就是批处理,变成死循环了。
帐号已注销
2011-09-23 · 贡献了超过119个回答
知道答主
回答量:119
采纳率:0%
帮助的人:34.4万
展开全部
while ((line = br.readLine()) != null) {
死循环
追问
将bat文件的内容直接复制到exec()中就会得到正确结果,不是死循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就热68
2011-09-23 · 超过15用户采纳过TA的回答
知道答主
回答量:161
采纳率:0%
帮助的人:53.9万
展开全部
bat文件有问题
追问
那该怎么写?
双击可以运行出正确结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maxer025
2011-09-23 · 超过14用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:42.4万
展开全部
没问题啊
更多追问追答
追问
你是怎么执行的?把bat文件的路径传进去有问题,直接把bat文件里的内容写在exec()中没有问题。在我这是这样的。
追答
wmic.bat的命令复制到命令行运行(系统盘运行)是死循环,java没问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式