java 按任意键继续_java – “按任意键继续”正在阻止我的程序

正如我在评论中所说,你可能会听到InputStream直到“按任意键”.然后你应该通过OutputStream写一个newLine到进程.以下是一些可以帮助您的代码:

public class BatchEnter {

public static void main(String[] args) throws Exception {

List params = Arrays.asList(new String[] { "cmd", "/C", "C:/test/test.bat" });

ProcessBuilder builder = new ProcessBuilder(params);

builder.directory(new File("C:/test")).redirectErrorStream(true);

final Process p = builder.start();

final BufferedReader wr = new BufferedReader(new InputStreamReader(p.getInputStream()));

final BufferedWriter writer = new BufferedWriter(

new OutputStreamWriter(p.getOutputStream()));

String line = "";

try {

while ((line = wr.readLine()) != null) {

if (line.equals("Press any key")) {

String newLine = "\n\r";

writer.write(newLine);

}

System.out.println(line);

}

} catch (IOException e) {

e.printStackTrace();

}

p.waitFor();

}

}

关于代码的一些评论:

>您应该更改异常管理原因我只是在做e.printStackTrace()

>我的进程是一个命令窗口,我不知道它是否适用于您的exe

编辑:

如果您没有获得任何输出,您只需尝试发送newLine提要,直到程序结束.你可以为exemample,每秒写一次newLine,直到进程停止.就像是 :

final BufferedWriter writer = new BufferedWriter(

new OutputStreamWriter(p.getOutputStream()));

while(true){

String newLine = "\n\r";

writer.write(newLine);

}

您可以启动一个写入进程的线程,并在p.waitFor()返回时停止它.你也应该改变条件,比如每秒钟或线程没有停止时更干净的东西.请注意,如果您正在写入流并且流程完成,您将具有IOException.这真的不是我会依赖的东西,但如果它可以帮助你.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值