Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Shell script from a java application

 
Sayantan Auddy
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My requirement is as follows:
There is a java desktop application which runs a shell script. The shell script does an ssh to connect to a remote server and does some processing. The output of the shell script will be shown in the java application.

I started out with the following code but the program is getting hung. Any pointers regarding where I am going wrong will be highly appreciated.



 
James Sabre
Ranch Hand
Posts: 781
Java Netbeans IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I can see three problem -

1) You need to send an end-of-line (a \n) after the command and to close() the stdin stream.
2) You need to process stderr because if the stderr buffer fills before the process has completed then you will get a deadlock. This should be done in a separate thread.
3) You need to process stdout in a separate thread since again it can cause deadlock if it's buffer becomes full.

You would do well to read the 4 sections of the traps article and implement ALL the recommendations.
 
Sayantan Auddy
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks a lot James
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic