Specialized Administration > Configuring Your Windchill Environment > Windchill Runtime Environment > Java Platform Support
  
Java Platform Support
Windchill is built using Java. In addition to being a robust programming language, Java provides a complete programming environment and many platform services not normally found in a programming language. Java is a complete programming environment because it provides basic services that allow you to get what you need from Java runtime rather than the operating system. Normally, programs that need to access graphics, network services, the disk, and even RAM, use a function call provided as part of the base-level operating system. But, in Java, the built-in runtime, called a Virtual Machine (VM), provides all of these basic services.
The Java support for network programming comes in the form of classes that deal directly with sockets so that connections to servers can be opened. There are also classes to parse network data and to send full Java objects over the wire. In addition, there is Remote Method Invocation (RMI), which is the Java middleware that allows one object to invoke methods directly on remote objects without any difference in syntax. RMI allows developers to focus on the application, using the objects most appropriate for the task at hand, and separately find the machine architecture tier most appropriate for that object. RMI handles the underlying communication, determines how parameters are accessed, and provides the serialization of data necessary for the method call so that it can be transported from client to server and back again.
Java also provides GUI building frameworks that contain widgets (for example, windows, menus, buttons, and so on) for building effective user interfaces. These GUI building frameworks give Java applications a uniform look and feel across platforms, while trying to use the underlying operating-system mechanisms directly.
A series of independent Application Programming Interfaces (APIs), collectively called Java Enterprise, support the building of enterprise applications in Java. Java Enterprise includes facilities to support distributed applications, interfacing to non-Java code, directory servers, databases, and more.
JDBC (frequently referred to as Java database connectivity) enables Java clients to interact with databases. You use JDBC to open and close connections, query metadata, issue SQL queries, get result sets, and more. JDBC can use native drives to access any type of data store, but the most common type is relational.
The Java VM implements a security system, called the sandbox model, for running code. As specified by this model, Java code can generally access data only within this secure sandbox. Desktop Integration and other functionality that interact with the user's local file go outside the sandbox, but require user permission.
Internationalization is the process of designing and developing an application that can be adapted to the culture and language of a locale other than the one for which it was originally developed. Java facilitates this task by providing classes that convert dates and numbers to formats conforming to local conventions, and by providing facilities to load localized resource bundles that contain text visible to users.