 <p>Note: Providing this answer to move the OP's comment to answer.</p> <p>The problem was that the C++ program was running the native launcher with the <code>-Djava.compiler=NONE</code> setting, which essentially set the JVM to run in "interpretive" mode, disabling JIT (just-in-time) compilation of java bytecode to native code, which naturally makes run slower as the bytecode needs to be interpreted every time it is executed.</p>