Java becomes increasingly popular for Internet computing because of its portability, safety and productivity. Especially, Java-based application server architecture plays an important role in Internet service systems. Currently, most Java virtual machines (JVMs) are in a run-once-and-exit model, which means we have to invoke a JVM for each application we want to run. Many resources are wasted by this execution model. First, the startup of JVMs takes a significant amount of time. Second, using heavy weight OS processes for small applications is expensive and does not scale well. Furthermore, the system classes can not be shared among applications and the memory footprint will be unnecessarily large with all the common data structures duplicated in each single JVM. In this project, we are investigating an alternative of the single application JVM, i.e., a multiple-application JVM, which can continuously execute multiple Java programs at the same time. There are many design challenges for a multiple-application JVM, such as application isolation, resource management and sharing, dynamic and adaptive compilation for multiple applications, etc. Instead of emphasizing on security concerns, we focus on performance issues, i.e., how to run multiple applications and manage system resources most efficiently.