Skip to content
Jonathan Lu edited this page Oct 31, 2025 · 3 revisions

Independent Evolution of JDK components

Traditionally, OpenJDK tightly couples the Java Virtual Machine (JVM) and the Java class libraries, releasing and evolving them together. However, in the broader industry, for many enterprise and legacy business scenarios, software teams may need to preserve long-standing APIs and application compatibility, while also seeking the benefits of cutting-edge JVM features—such as improved performance, enhanced security, and advanced runtime diagnostics. For these users, the ability to independently upgrade the JVM without forcing a migration of the entire class library stack is highly attractive.

Benefits

  • Accelerated Performance Improvements: The JVM can adopt new optimizations and runtime features without waiting for class library updates.
  • Enhanced Compatibility: Legacy applications using older APIs can still benefit from modern JVM performance and security enhancements.
  • Modularity: Organizations can select JVM and class library versions that best suit their needs.

Challenges

While independent evolution brings flexibility, it introduces several maintenance challenges:

  • Increased Complexity: Divergence between the JVM and class libraries may lead to subtle compatibility issues, especially with internal APIs and non-standard behaviors.
  • Testing Burden: Ensuring full compatibility across combinations of JVM and class library versions requires extensive testing, especially for security and edge-case behavior.

The CompoundVM Project

CompoundVM is built on the principle of enabling modern JVMs to run on established JDK class libraries, inspired by proven industry precedents. However, this approach is not universally suitable. We do not recommend blindly adopting decoupled JVM/class library maintenance. Users should carefully evaluate compatibility, supportability, and testing requirements for their specific scenarios. CompoundVM is best suited for environments where legacy APIs must be preserved, but runtime performance and features need to be modernized.

Explore the Wiki to learn more about installation, usage modes, and development practices with CompoundVM.

Clone this wiki locally