|
What is Runtime Java Class Editor (RJCE)?
Watch out for new release due September 2006
RJCE enables the editing of any method at runtime, applying the changes to any combination of objects, such as an array, or a complete class. RJCE consists of a compiler javaprec and an IDE Runtime Object Modifier (ROM).
javaprec is used to compile programs, enabling runtime editing. javaprec uses both sun.tools.javac and ANLTR for compilation.
ROM is a JFrame used for editing methods, browsing classes, and viewing variables at runtime. ROM also includes an interpreter called BeanShell. BeanShell is used for the rerouted execution of altered methods. BeanShell can also be used to run Java scripts (which circumvent normal language access control).
What is RJCE used for?
A debugging / development tool RJCE allows all methods or variables of user defined classes to be altered at runtime. These alterations are then applied to a single instance, a collection of instances (i.e. list, set or map), or an entire class. This helps you to test your application in an interactive way; altering running programs helping a trial and error approach to programming; testing code and saving it when it�s correct. Long running algorithms, such as simulations, can also easily be refined without the need for restarts or lose of data. RJCE can be used to write a program from within itself ensuring high coupling between testing and development, with no delay before the outcome of any alterations.
A scripting tool RJCE allows scripts to run from within your application, allowing users to configure or extend an application dynamically, bypassing normal language access rules controlled by public, private and protected. This can be done by easily instatiating an instance of CodeEditorFrame from the rom.gui package.
A rapid prototyping tool RJCE permits faster development of applications by allowing easy migration from scripts to Java programs.
Runtime Object Modifier (ROM) |
|
javaprec |
|
![click to enlarge](images/ROMScreenShot.png) |
|
![click to enlarge](images/javaprecScreenShot.png) |
(click to enlarge)
|