The WrapperManager.exec() function is a alternative to the Java-Runtime.exec() which has the disadvantage to use the on some platforms memory expensive fork() method to create a new process.
The problem on those platforms is, that if the Parent Process from which one wants to start a side process, fork() causes to clone the memory of the parent for the child.
This will double the used memory for a short time.
Given a fairly large application which is close to the systems memory quota, it might fail to just create a small application like ls or the memory is going to get swapped on the HD, which decreases the performance drastically.

Another issue is to ease bind or detach the child while starting from the parent.
If the Java Process terminates expected or unexpected the wrapper will clean all bind processes which haven't finished yet.

For better consistency the exec() function was implemented as close to the Runtime.exec() function in Java as possible.