As Java is the preferred platform for the deployment of network computers, it is appealing to run multiple applications on a single Java desktop. We experimented with using the Java platform as a multi-processing, multiuser environment. Although the Java Virtual Machine (JVM) is not inherently a single-application design, we have found that the implementation of the Java Development Kit (JDK) often implicitly assumes that the Java Virtual Machine runs exactly one application at any one time. In this paper, we report the limitations we encountered and propose improvements to several aspects of the Java architecture, including its security features. We have implemented all the proposed changes in a prototype based