icegem-core/src/main/java/com/googlecode/icegem/utils/JavaProcessLauncher.java
public Process runWithConfirmation(String id, Class<?> klass,
			String[] javaArguments, String[] processArguments)
			throws IOException, InterruptedException {
		Process process = startProcess(id, klass, javaArguments, processArguments,
				true);

		waitConfirmation(klass.getSimpleName(), process);

		new StreamRedirector(process.getInputStream(), klass.getSimpleName()
				+ PROCESS_STDOUT_STREAM_PREFIX,
				redirectProcessInputStreamToParentProcessStdOut).start();

		return process;
	}
public Process runWithConfirmation(String id, Class<?> klass,
			String[] javaArguments, String[] processArguments)
			throws IOException, InterruptedException {
		Process process = startProcess(id, klass, javaArguments, processArguments,
				true);

		waitConfirmation(klass.getSimpleName(), process);

		new StreamRedirector(process.getInputStream(), klass.getSimpleName()
				+ PROCESS_STDOUT_STREAM_PREFIX,
				redirectProcessInputStreamToParentProcessStdOut).start();

		return process;
	}
Runs process based on a specified class in a separate VM using array of
arguments. To confirm that process completes startup it should write a
startup completed string into it's standard output.

@param id
the process identifier.
@param klass
of type Class.
@param javaArguments
arguments for java.
@param processArguments
arguments for process.

@return Process the started process.
@throws IOException
when
@throws InterruptedException
when