I would like to find out what is the purpose of the JVM (Java Virtual Machine) in the MCR and what is the effect if I invoke the -NOJVM flag in MWApplication.initializeApplication()?
As I have written an Java application which contain an GUI, and I tried with/without -NOJVM option. And only the LookandFeel of the GUI change.
Matlab contains an internal JVM, which is used for all Matlab-generated GUI (figures, dialog windows, the desktop/editor etc.). By starting Matlab with the -NOJVM switch, you’re basically using Matlab as a pure computational engine (the engine is c/c++-based and does not use the JVM). If all your GUI is handled externally to Matlab, then perhaps you don’t need the internal JVM, which carries a memory and startup-performance cost.