Search code examples
javajvmhotswapdcevmhotswapagent

How does DCEVM patch the JVM?


How does DCEVM patch the JVM so that it can be started both in the normal mode and in XXaltjvm mode? What does it do to the regular libjvm.so/jvm.dll/libjvm.dylib?

From Installing DCEVM


Solution

  • DCEVM does not patch the original JVM.
    It installs a different version of libjvm.so under $JDK_HOME/lib/dcevm

    -XXaltjvm option is supported by the regular Java launcher out of the box. When specified, the launcher looks for libjvm.so in the alternate directory:

    • if -XXaltjvm value starts with /, it is treated as the absolute path of the alternative JVM;
    • otherwise, the directory is relative to the JDK home: $JDK_HOME/lib/<altjvm>