launch may be null if running a program directly from //J api (not launching one)