The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, the present disclosure relates to implementing software in a limited environment.
Java™ is an Object-Oriented Program (OOP) that is designed to be platform independent. An application written in Java™ is first compiled into generic bytecode, which is a binary code that is designed to be executed by a virtual machine rather than by dedicated hardware. The compiled bytecode is then converted, by a Java™ Virtual Machine (JVM), into native code that is used in a particular hardware environment.
Java™ comes in many different versions, including full-class versions and limited-class versions. Examples of full-class versions, which include most, if not all, of the Java™ classes, are Java 2 Platform, Standard Edition (J2SE™) and Java 2 Platform, Enterprise Edition (J2EE™). An exemplary limited-class version of Java™ is Java 2 Platform, Micro Edition (J2ME™). Although J2ME™ has fewer classes than J2SE™ or J2EE™, it is still useful in equipment that has limited memory and/or computing power, such as cell phones, portable gaming devices, etc.
Since J2ME™ does not support all of the classes found in J2SE™ or J2EE™, it is usually not possible to run a program written in J2SE™ or J2EE™ in a J2ME™ environment. For example, consider FIG. 1, which shows code that is designed to run in a full-class version of Java™, and is depicted as J2SE™ level code 102. This J2SE™ level code 102 is designed to use, in an unrestricted manner, the full-version of classes found in J2SE™ classes 104. However, now assume that, as shown in FIG. 2, the J2SE™ level code 102 is being deployed to an environment in which only J2ME™ classes 202 are available, resulting in many absent J2SE™ classes 204, which are part of the J2SE™ classes 104 shown in FIG. 1. Since the J2SE™ level code 102 needs classes that are absent from the J2ME™ classes 202, the J2SE™ level code 102 cannot execute.