Packaging Java in Applications for Embedded Systems Running Big Things On Small Devices Aldo Eisma, Object Technology International, Inc., The Netherlands aldo_eisma@oti.com Traditionally, most embedded systems used to be programmed in languages like C and assembler because they were simple and static and had relatively long life cycles. With the advent of pervasive computing, bringing us all sorts of new dynamic, networked and complex embedded devices, there is a strong interest for programming these devices in the Java programming language. The limitations and special characteristics of embedded devices require a new approach for the Java VM, class libraries and supporting development tools. One of the main components in the embedded Java development environment is the packager. The packager collects Java class files and resources and builds a run-time image that can be stored in ROM, minimizing startup time and decreasing RAM requirements on the device. The images contain pre-linked optimized Java class files from which redundant and unused elements have been removed. Various techniques have been researched by IBM Watson and OTI, and have been implemented in IBM's VisualAge Micro Edition SmartLinker and VM components. An introduction to the issues and an overview of the techniques used is given in this presentation.