Persistent Java Virtual Machine

Project Category: 
Christopher Vickery, Queens College

The Persistent Java Virtual Machine (pjvm) project began as an attempt to reduce the overhead involved in the compile-test-edit cycle during the development of Java applications. The idea was to keep a single JVM "alive" across iterations of the development cycle in order to eliminate the loading and initializing of a new JVM each time. An analogy would be the use of the "++" option with IBM's Jikes compiler, which keeps the compiler process running, with an automatic recompilation of only those source files that have changed when the user presses the Enter key. Similarly with pjvm, only those classes that have been modified would need to be reloaded into the JVM during an iteration of the development cycle. In developing the pjvm facility, we soon realized that the tool we were developing was far more useful than simply a mechanism for streamlining the development cycle. Java's Reflection Mechanism, a key feature needed to support pjvm, provides professional and student developers with key insights about the structure and operation of code running in the JVM environment. Using the pjvm interface, the user cannot only create JVMs and load classes into them, but also instantiate classes, invoke methods, and get lists of objects, methods and classes currently residing in each JVM. Right now, pjvm is not a full-featured debugger, but with the addition of standard debugging facilities for tracing code will, we think, make pjvm the development platform of choice for serious Java developers.

Education - This is a contributing Drupal Theme
Design by WeebPal.