Java执行命令

   在java程序中有时候需要调用操作系统的一些功能,特别是在unix/linux环境下,命令行提供了很多有用功能。比如启动或者停止服务。我写个简单的程序,可以帮助理解。
import  java.io.BufferedInputStream;
import  java.io.BufferedReader;
import  java.io.IOException;
import  java.io.InputStreamReader;

public   class  CommandLine {
    
public   static   void  main(String[] args)  throws  IOException {
        
if  (args  ==   null   ||  args.length  ==   0 ) {
            System.out.println(
" 请输入命令行参数(例:java CommandLine 'netstat') " );
        } 
else  {
            String cmd 
=   "" ;
            
for  ( int  i  =   0 ; i  <  args.length; i ++ )
                cmd 
+=   "   "   +  args[i];
            
try  {
                Runtime run 
=  Runtime.getRuntime();
                Process p 
=  run.exec(cmd); // 启动另一个进程来执行命令
                BufferedInputStream in  =   new  BufferedInputStream(p.getInputStream());
                BufferedInputStream err 
=   new  BufferedInputStream(p.getErrorStream());
                BufferedReader inBr 
=   new  BufferedReader( new  InputStreamReader(in));
                BufferedReader errBr 
=   new  BufferedReader( new  InputStreamReader(err));
                String lineStr;
                
while  ((lineStr  =  errBr.readLine())  !=   null )
                    System.out.println(lineStr);
                
while  ((lineStr  =  inBr.readLine())  !=   null )
                    System.out.println(lineStr);
                
// 检查命令是否执行失败。
                 try  {
                    
if  (p.waitFor() != 0 ) {
                        
if (p.exitValue() == 1 ) // p.exitValue()==0表示正常结束,1:非正常结束
                            System.err.println( " 命令执行失败! " );
                    }
                }
catch  (InterruptedException e){
                    e.printStackTrace();
                }
            } 
catch  (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
   执行程序:
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值