java 调用 外部程序_Java调用外部程序的例子

本文详细介绍了Java如何调用外部程序,包括在Windows环境下调用BAT脚本和在Linux环境下调用SHELL脚本。在Windows中,需在执行命令前加上"CMD.EXE /C";而在Linux中,由于命令可能等待输入,需要处理标准输入。文中提供了完整的调用代码示例和错误处理策略。
摘要由CSDN通过智能技术生成

Java调用外部应用程序都是通过“Runtime.getRuntime().exec()”来实现的。但是,因调用的内容不同,而需要额外处理的内容也不同。我就说一下调用BAT和SHELL的情况。

1.如何在Windows下调用BAT。

由于BAT脚本里的命令大部分是windows的内部命令,所以要能正常执行,必须要command.COM(Win95、Win98)或CMD.EXE(XP、NT)的支持。所以我们必须在Runtime.getRuntime().exec()执行的内容前增加“CMD.EXE /C”表示启动一个CMD的终端执行。

2.如何在Linux下调用SHELL。

如果直接在Linux下通过“Runtime.getRuntime().exec()”来执行命令,常常会遇到调用执行的进程无响应,出现这个原因是Linux终端执行的命令处于等待输入状态,所以外部调用的进程无响应。解决的办法就是将系统的标准输入一直打印出来。见下列代码:

// read buffer of parent process' input stream

final BufferedReader reader = new BufferedReader(

new InputStreamReader(System.in));

tIn = new Thread() {

public void run() {

try {

while (true) {

outputStream.write((reader.readLine() + "\n")

.getBytes());

outputStream.flush();

}

} catch

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值