There are many systems that have to be available without interruption and so cannot bebrought down for modifications. Examples of such applications include financial
transaction processors, telephone switches and air traffic control systems. On the other
hand, hardly any software is deployed error-free or fully functional, thus requiring fixes
and changes. Therefore, there is a need for runtime software upgrading capability for
such systems. This paper discusses existing approaches of “hotswapping” – runtime
updating of classes – for the Java language. The different implementations of
hotswapping are compared with respect to functionality, efficiency, ease of use and
limitations. In addition, an improvement for one hotswapping mechanism is suggested
and implemented.