ipoe项目中用到了java调用外部命令,Process process = Runtime.getRuntime().exec();
process对象能够执行外部命令。
把本地生成的配置文件发送到另外一台服务器上面,因此需要在linux环境下调用.sh文件,这里想略带提一下,通常不同机器之间的数据传输都会采用udp等需要开端口的策略,但这样安全性能就会降低,我们采用的是ssh scp命名,传输小量的数据还是很有优势的。回到正题,调用外部命令其实蛮危险的,因为,在主线程外再开线程,如果处理不好,容易导致阻塞的情况。
int num = process.waitfor();就会导致阻塞(0表示正常)
int num = process.exitValue();是不阻塞的,但是有很多错误流需要处理。
我为了防止消耗太多资源,在外部命令执行完成后,就把进程杀了。
process.destroy();