См. это и это
Первое - это создание дочернего процесса с перенаправленным вводом и выводом. Статья
Во-вторых, Как порождать консольные процессы с перенаправленными стандартными дескрипторами.
Хорошее чтение в целом, может решить вашу проблему.
Пример
HINSTANCE hInst = ShellExecute(NULL, "open", "path\\to\\java.exe", "-jar path\to\lib.jar WORLD", NULL, SW_SHOWMAXIMIZED);