EarlGray is a component-based Java virtual machine (JVM) that can be configured to satisfy various kinds of requirements for building future information appliances and embedded systems. While the modification and extension on an existing JVM tend to be done in an ad-hoc manner, EarlGray allows developers to customize the JVM in a systematic manner by decomposing it into components and the explicit descriptions of the relationship between the components. We also examine three case studies on the customization of the EarlGray: exchanging a scheduler, memory management, and class file verifier components. These case studies shows the benefits and drawbacks of the current component-based technologies.