It's all about the answers!

Ask a question

Calling SCM via Java


Chris Ryan (15732328) | asked Feb 26 '14, 11:19 a.m.
Hey folks,
I'm writing a Java application to call the RTC scm command line client to login, create workspaces, and load data.

I'm using the Java Process and ProcessBuilder classes for this.

The issue I'm running into, is that I'm losing the error messages.  Process getInputStream(), along with a call to ProcessBuilder.redirectErrorStream(true).

When I call "scm create workspace -r <ourjazzuri> "workspacename", there's a problem, and I get "problem running 'create workspace':, but no information is added.

The returnCode from running that command is 25.  Anyone know why I'm not getting the info?

Thanks a million,
Chris

One answer



permanent link
Chris Ryan (15732328) | answered Feb 26 '14, 11:52 a.m.
edited Feb 26 '14, 1:18 p.m. by sam detweiler (12.4k6178201)
I found this page, so I now know what error code 25 means, but I'm still unsure how to get the appropriate error messages via Java.

http://stackoverflow.com/questions/14165517/processbuilder-forwarding-stdout-and-stderr-of-started-processes-without-blocki

Comments
1
sam detweiler commented Feb 26 '14, 1:11 p.m.

the typical protocol for commandline applications is to generate good data on stdout (handle 1) and error info on stderr (handle 2)...


so if you are launching the app i java, you would need to capture the stderr output as well. 


Chris Ryan commented Feb 27 '14, 10:02 a.m.

t turns out that I was not getting the output in the correct order. i.e. I was calling process.waitFor() before reading my stream.

Fixed now.  Thanks!!!


sam detweiler commented Feb 27 '14, 4:45 p.m.

that will do it!.. thanks for posting back 

Your answer


Register or to post your answer.