Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!nx01.iad01.newshosting.com!newshosting.com!69.16.185.21.MISMATCH!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!v9g2000vbp.googlegroups.com!not-for-mail From: SamuelXiao Newsgroups: comp.lang.java.programmer Subject: Re: Java Runtime getRuntime().exec not work in AIX Date: Mon, 26 Sep 2011 08:28:38 -0700 (PDT) Organization: http://groups.google.com Lines: 32 Message-ID: <39eb6d25-5671-48b6-90b0-ef2ffb568dc6@v9g2000vbp.googlegroups.com> References: <4e7bded3$0$286$14726298@news.sunsite.dk> <4e7cfddd$0$287$14726298@news.sunsite.dk> NNTP-Posting-Host: 113.252.244.58 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1317050918 13639 127.0.0.1 (26 Sep 2011 15:28:38 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 26 Sep 2011 15:28:38 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: v9g2000vbp.googlegroups.com; posting-host=113.252.244.58; posting-account=u7Z5bAoAAAAt3dGtAbye_zJ7B1CGCs-X User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HUALESNKRC X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2,gzip(gfe) Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:8334 On Sep 23, 8:14=A0pm, Andreas Leitgeb wrote: > Arne Vajh=F8j wrote: > > On 9/23/2011 10:35 AM, SamuelXiao wrote: > >> String[] cmds =3D{"/bin/ksh","-c","uuencode /log/test.log attached.log= | > >> mailx -s 'Testing' a...@example.com "}; > >> System.out.println("Before process run"); > >> Process process =3D Runtime.getRuntime().exec(cmds); > >> System.out.println("After process run"); > >> both message displayed, but the process really not running. > > That code is not reading output and error from the process. > > What may be even more relevant than reading from channels > that likely won't send data, anyway, is to call .waitFor() > on the process returned by the .exec(...)-call, in order to > ensure that "After process run" is really printed after the > run, instead of already after merely being kicked off. > > Reading from the error channel, like Arne suggested, might > still be a good idea - unless you really don't care about > any failures of uuencode or mailx. =A0Logging errors could also > be done by ">>/tmp/debug-uuencode-and-mailx.log 2>&1" added > to the little ksh-script. Hi all, Thanks very much, the problem has been solved. After I added p.waitfor() after .exec(cmds), the process run successfully. Although I don't know why need to add waitfor() to it. Thanks