Yet Another Process Library for Java (YAPLJ)
zeroturnaround.com
zeroturnaround.com
You mention "writing lots of helpers to get rid of the boiler plate." Can you offer an example? Putting a boilerplate-heavy example next to a beautiful two or three lines of equivalent code that uses your API really helps people to grok your goals.
If I sound critical, I sincerely apologize. As someone who writes a ton of code I'm always so thankful for people who take the time to package up and share their work. It's really quite a nontrivial thing to do.
Default settings are sensible and fit the use case of: start process, consume and return its output/error streams, check error code. Common use-cases like killing process when parent JVM exits are supported with one-liner calls, etc. It was aimed to be friendly.
Finally, the comparison with other frameworks. You can find a couple of examples in the [readme file](https://github.com/zeroturnaround/zt-exec/blob/master/README...) on github. Also tests somewhat reveal the feel of the api.
My favorite feature is that it supports futures. When you want to run your process async mode commons-exec tutorial suggests:
executor.execute(cmdLine, resultHandler);
// some time later the result handler callback was invoked so we
// can safely request the exit value
int exitValue = resultHandler.waitFor();
zt-exec has: Future<ProcessResult> future = new ProcessExecutor()
.command("java", "-version")
.start();
// do some stuff
future.get(60, TimeUnit.SECONDS);
You get a process library that works well with java's default async framework.Hope it gives some insight. If you have any more questions, I'll be happy to help to the best of my abilities.
disclaimer: I'm working for ZeroTurnaround, but I haven't been directly involved in creating or making zt-exec publicly available.