Without knowing more about your application, it's hard to say. But, instinctively, I would not split it up and use the shell. Using the shell would break the cross-platform portability of using Java (or at least make it a lot harder to maintain). It would also introduce a new layer of opacity when troubleshooting bugs and a whole new avenue for the introduction of new bugs. And finally, as you say, so far it works perfectly. Why fix what isn't broken?