java runtime 返回值_Java Runtime.exec()注意事项 | 学步园

转载自:http://blog.csdn.net/flying881114/archive/2011/03/23/6272472.aspx

0. Runtime.exec()用来执行外部程序或命令

1. Runtime.exec() 有四种调用方法

* public Process exec(String command);

* public Process exec(String [] cmdArray);

* public Process exec(String command, String [] envp);

* public Process exec(String [] cmdArray, String [] envp);

2. 得到程序执行返回值, 0为success

需要用waitFor()函数,比如

Process p = Runtime.getRuntime().exec("javac");

(处理.....)

int exitVal = p.waitFor();

3. 得到程序执行的结果或错误信息

需要用BufferedInputStream 和 BufferReader来得到,否则程序会hang

比如得到错误信息用p.getErrorStream(),然后输出即可:

BufferedInputStream in = new BufferedInputStream(p.getErrorStream());

BufferedReader br = new BufferedReader(new InputStreamReader(in));

4. Runtime.exec() 不等同于直接执行command line命令!

啊,我算是在这里吃了苦头了。Runtime.exec()很有局限性,对有些命令不能直接把command line里的内容当作String参数传给exec().

比如重定向等命令。举个例子:

javap -l xxx > output.txt

这时要用到exec的第二种重载,即input 参数为String[]:

Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","javap -l xxx > output.txt"});

参考资料:

http://blog.csdn.net/westwin/archive/2005/04/22/358377.aspx

http://blog.csdn.net/moreorless/archive/2009/05/15/4182883.aspx

http://blog.csdn.net/HEYUTAO007/archive/2010/06/30/5705499.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL中CONVERT转化函数的用法[个人推荐]

转载:http://piaoye.cnblogs.com/archive/2005/09/09/233363.htmlCONVERT的使用方法:格式:CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到. 例子:SELECT CONVERT(va…

A和G cup的差距究竟有多大?| 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅太阳其实一直在狂奔太阳带着地球等行星以250km/s的速度在绕着银河系公转每转一圈需要2.5亿年图源见水印A罩杯和G罩杯的差距有多大錶情包运动鞋后面的这个东西原来是用来晒鞋子的抖音然一往一捆蛏子上撒盐会发生什么?残酷的…

计算机软件资格考试网站

计算机软件资格考试网站 软考在线http://www.netandnet.net/ 是一个专为准备参加软考人员服务的计算机专业水平考试网站,内容括最新软考新闻,软考文章,软考下载,软考书店,软考论坛等. 系统分析之窗http://www.sawin.com.cn/ Sawin作为系统分析、软件工程的技术推广…

五个 .NET 性能小贴士

原文:bit.ly/3wSpO4o作者:Nikita Starichenko翻译:精致码农大家好!今天我想和大家分享几个 .NET 的性能小贴士与基准测试。我的系统环境:BenchmarkDotNetv0.13.0, OSWindows 10.0.19042.985Intel Core i7-9750H CPU 2.…

java程序弊端_面向对象编程的弊端是什么?

信仰万物皆对象,习惯性Thinking in OOP的话,有可能会限制住自己解决实际问题的思路。曾经面试过某java候选人,我出了道其实很简单的算法题。结果候选人上来就去定义对象、属性、方法、接口等等,企图去搭一个面向对象的『框架』来解…

Javascript函数调用的四种模式

Javascript一共有四种调用模式:方法调用模式、函数调用模式、构造器调用模式以及apply调用模式。调用模式不同,对应的隐藏参数this值也会不同。 函数作为对象的属性时,称为方法。此时函数(即方法)中的this对应是该对象…

【推荐】BREW中 - 显示和图像

a. BREW 支持哪些图像格式? 适用版本: 1.0, 1.1, 2.0 BREW 支持颜色深度达到运行设备上提供的值的任何 BMP 文件。 BREW 目前尚不支持 GIF 和 JPEG 图像。 有些设备可以支持 GIF 和 JPEG 图像,请参阅设备数据表来查看 OEM 是否提供了支持以上…

我背着女朋友,用 Python 偷偷抓取了她的行踪

全世界只有3.14 %的人关注了青少年数学之旅1目 标 场 景有时候女朋友一个人在外面玩耍,问她在哪个地方,就是不告诉我。但是,你又很想知道女朋友的「位置」,这该如何是好?其实你可以这样套路女朋友,假装自己…

ASP.NET Core 中的规约模式(Specification Pattern )——增强泛型仓储模式

原文链接:https://codewithmukesh.com/blog/specification-pattern-in-aspnet-core/在本文中,我们将讨论在 ASP.NET Core 应用程序中实现规约模式以及它如何增强现有的泛型仓储模式。我们将从头开始构建具有泛型仓储模式、Entity Framework Core的 ASP.N…

面向过程的ado建造者模式

{*******************************************************}{ }{ ADO数据工厂 }{ }{ 版权所有 (C) 2008 咏…

Javascript:this用法

#Javascript:this用法整理pingan 于 星期三, 18/12/2013 - 22:32 提交 常用Javascript的人都知道,[this这个关键字在一个函式内究竟指向谁]的这个问题很令人头大,本人在这裡整理了一下Javascript中this的指向的五种不同…

动画演示男性结扎手术 | 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅流鼻涕了怎么办?医学教育徐琦招聘程序员啦知识萌死大丧失;图熊本科技把下列句子补充完整图三好学生李宇幼年的大象喝水并不会使用鼻子而是趴在水里直接用嘴大喝一顿它们9个月之后才会懂得用鼻子喝水科普斯基请…

MYSQL 只能回环口链接_loopback回环口详解

在配置OSPF路由协议的时候配置回环(loopback)接口是很重要的1件事.Cisco建议你配置OSPF的时候顺便配置回环接口.所谓回环接口,是逻辑接口而非物理接口,即不是你触摸的到的router上的真正的接口.作用是作为诊断OSPF而用.如果router的某一个接口由于故障down掉而不可用了,此时你怎…

AspNetCoreMassTransit Courier实现分布式事务

在之前的一篇博文中,CAP框架可以方便我们实现非实时、异步场景下的最终一致性,而有些用例总是无法避免的需要在实时、同步场景下进行,可以借助Saga事务来解决这一困扰。在一些博文和仓库中也搜寻到了.Net下实现Saga模式的解决方案MassTransit…

可能会紧急用到的Linux命令

查看当前网络连接数: netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r -n删除掉不以java和xml结尾7天没有使用的文件 : find . ! -name *.java ! -name *.xml -atime 7 -exec rm {} \;转载于:https://blog.51cto.com/guihai…

设置列表字段为主键

转贴:Sample event handler to set a field as a pr imary key (enforce no duplicates) Got this as a request from a reader- how to prevent users from adding items with same titles as ones that already exist in the list. Codeusing System;using System.Collectio…

被学校辞退、拒绝FB后:语音识别大牛Povey确认兼职北京初创公司,称主业还选中国...

全世界只有3.14 % 的人关注了青少年数学之旅由于5月的学生抗议事件,语音识别领域著名学者、原约翰霍普金斯大学教授Daniel Povey被学校辞退。随后,Daniel Povey准备进入Facebook从事语音识别系统的开发,但是由于Facebook要对其进行长达6周的审…

也谈子网划分和子网通信

子网划分和子网通信在小型网络中应用不多,但随着公司规模的扩大,这样的问题就会提上网管的工作计划。资料略加整理,希望对各位有帮助。也谈子网划分和子网通信1.网络IP地址和子网掩码的分类:A类:IP: 0.0.0.0 &#xff…

java io流学设置编码_Java学习日志(21-2-IO流-基本数据类型与字节数组对象与、编码解码)...

操作基本数据类型的流对象DataStream/*可以用于操作基本数据类型数据的流对象*/import java.io.*;class DataStreamDemo{public static void main(String[] args)throws IOException{// writeData();// readData();// writeUTFDemo();// OutputStreamWriter oswnew OutputStrea…

dotnet中的counters说明(二)

上篇说了System.Runtime,它负责应用运行的环境资源的收集,这篇要继续说AspNetCore的Hosting,Http.Connections和Server.Kestrel三个计数器。同时,下面指标各项()里的项目是--counters 参数[]里的项,用逗号分隔多项指标。Microsoft…