Link to home
Start Free TrialLog in
Avatar of CI-Ia0s
CI-Ia0s

asked on

Making Runtime.exec() wait

The point of this thread is really that I feel like I owe Giant2 some more points for helping beyond what was needed... Others who wish to answer this question, though, see here for the details of my problem (I am willing to split points): https://www.experts-exchange.com/questions/21074134/Running-javac-from-a-java-class.html#11674022

Though the details are at the link above, I will summarize the issue:
I am using Runtime.getRuntime().exec("javac File.java") to compile a java source file. However, I later JAR the file, so I need the Runtime command to finish compiling before continuing in the program (what it does otherwise is simply starts the compiling process alongside the rest of my program and does both at once).

Now, if I can get a code example I'll award the points and be off to finish my program!
ASKER CERTIFIED SOLUTION
Avatar of keteracel
keteracel
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of CEHJ
Depends whether you want to do it in one thread or not. You can use waitFor if so. If you're using more than one thread and are compiling\jarring asynchronously, you need to use some form of semaphore
Avatar of CI-Ia0s
CI-Ia0s

ASKER

It's one thread, and it's working. :)

Keteracel, I'm giving you the majority of the points for your example. I'm just waiting for Giant2 because I do owe him something for his help on this in the other thread. As soon as he posts here I'll split 'em up and dish 'em out.
>>It's one thread, and it's working. :)

Oh - from your other Q it looked like more than one thread ;-)
Avatar of CI-Ia0s

ASKER

Well... I am running several threads, but the jarring and javacing occur in the same thread. Plus, I'd think waitFor would still work anyway... Java waits to finish any process I call before moving on to the in the thread, right? (i.e. I call method Encrypt() from class EncryptData and it finishes that before continuing with the rest of the program).

Anyway, waiting on Giant2 now...
>>but the jarring and javacing occur in the same thread

OK

>>Java waits to finish any process I call before moving on to the in the thread, right?

Yes

If you're interested here's an example that'll post your command output to a swing text area

http://www.objects.com.au/java/examples/util/SwingExec.do
Avatar of CI-Ia0s

ASKER

Cool. I was wondering how to get to that info... anyway, thanks. Now where is Giant2!?!?!
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of CI-Ia0s

ASKER

Yup, it was. I just haven't worked with the Process class before and needed a code example. (I can see why you thought one wasn't necessary). ;)

You have both been awarded points. Thanks for your help!
Thank you.
:-)