java runtime shell_如何使用java Runtime执行交互式shell脚本?

它打印当前目录和退出的原因是因为您的Java应用程序退出.您需要向创建的进程的输入和错误流添加(线程)侦听器,并且您可能希望将printStream添加到进程的输出流

例:

proc = Runtime.getRuntime().exec(cmds);

PrintStream pw = new PrintStream(proc.getOutputStream());

FetcherListener fl = new FetcherListener() {

@Override

public void fetchedMore(byte[] buf, int start, int end) {

textOut.println(new String(buf, start, end - start));

}

@Override

public void fetchedAll(byte[] buf) {

}

};

IOUtils.loadDataASync(proc.getInputStream(), fl);

IOUtils.loadDataASync(proc.getErrorStream(), fl);

String home = System.getProperty("user.home");

//System.out.println("home: " + home);

String profile = IOUtils.loadTextFile(new File(home + "/.profile"));

pw.println(profile);

pw.flush();

要运行它,您需要下载我的sourceforge项目:http://tus.sourceforge.net/,但希望代码片段足够有用,您可以适应J2SE以及您正在使用的任何其他内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值