an embedded desktop which can run multiple java applications simultaneously under one instance of a java ™ virtual machine and which allows open applications to communicate with one another in a system independent manner . the embedded desktop functionally exists between the jvm and the multiple java ™ applications and consists of a core and various plug - ins . when applications are launched by a user , an application class loader for each application is invoked using the class names of the respective applications . by segregating each application into an application class loader , class name collisions and resulting application crashes are avoided . once application class loaders have been invoked , communication between applications is facilitated through the core , avoiding the overhead and complexity of system dependent communication through the operating system and associated hardware .