java runtime 参数,java – 将参数发送到Runtime.getRuntime().exec()执行后

您的程序是否没有–password选项?通常,所有基于命令行的程序都主要用于脚本.

Runtime.getRuntime().exec(new String[]{"your-program", "--password="+pwd, "some-more-options"});

或者更复杂的方式,更容易出错:

try {

final Process process = Runtime.getRuntime().exec(

new String[] { "your-program", "some-more-parameters" });

if (process != null) {

new Thread(new Runnable() {

@Override

public void run() {

try {

DataInputStream in = new DataInputStream(

process.getInputStream());

BufferedReader br = new BufferedReader(

new InputStreamReader(in));

String line;

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

// handle input here ... ->

// if(line.equals("Enter Password:")) { ... }

}

in.close();

} catch (Exception e) {

// handle exception here ...

}

}

}).start();

}

process.waitFor();

if (process.exitValue() == 0) {

// process exited ...

} else {

// process failed ...

}

} catch (Exception ex) {

// handle exception

}

此示例打开一个新线程(请记住并发和同步),它将读取进程的输出.类似的,只要没有终止,您就可以使用输入来处理您的流程:

if (process != null) {

new Thread(new Runnable() {

@Override

public void run() {

try {

DataOutputStream out = new DataOutputStream(

process.getOutputStream());

BufferedWriter bw = new BufferedWriter(

new OutputStreamWriter(out));

bw.write("feed your process with data ...");

bw.write("feed your process with data ...");

out.close();

} catch (Exception e) {

// handle exception here ...

}

}

}).start();

}

希望这可以帮助.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值