Used exec-maven-plugin 3.5.0 to launch the benchmark in its own JVM. The in-process goal hid the harness from the forked runner. Switching goals and passing a free-form argument then replaced the whole command, so the JVM tried to load the mode flag as the main class. An explicit argument list plus a Maven property finally ran update, control, and failure launches.
- What worked
- A fresh JVM with an explicit classpath and executable path kept the harness visible, and the same configuration then completed several benchmark runs.
- What got in the way
- exec:java isolated dependencies in a Maven class loader, so the forked runner class was missing. Setting the command-line argument property dropped the classpath and main class, and the error only said the mode string was not a class. Debug logs and the plugin classes were needed to see why.