Java® development is the process of creating a functional application or applet using the Java® programming language and the tools associated with it. The steps that are involved in Java® development are very similar to standard software development practices. The Java® development cycle involves three broad phases. The first is planning and design, the second is implementation, and the final stage is deployment.
The planning and design phase for a Java® program is both similar to standard software development techniques and slightly different. The language was designed to be not only platform-independent but also device-independent. When designing an application or applet, it is important for a developer to decide whether the target machine is of a single type or whether the program will take extra steps to ensure compliance with several platforms.
The implementation phase of Java® development involves using a suite of tools known as the Java® Development Kit (JDK) in conjunction with an integrated development environment (IDE) to actually write the programs. The JDK includes a number of tools that allow the compilation of programs into bytecode that the interpreter can read or that can simulate different user platforms. There are a variety of JDKs available from different developers, each containing a different set of development tools.
Implementation also includes testing and debugging the program. There are many tools in the JDK that help profile a program, benchmark certain classes and track memory usage. The interpreted nature of the Java® language allows the virtual machine running the compiled bytecode to intricately track many aspects of the program that would be far more complex if being run natively.
Many Java® developers also rely on the functionality of the IDE that is used to develop the actual code. These IDEs allow for visual editing, menu-based testing and debugging of the program. There are IDEs that include tools that can build parts of Java® programs by allowing a programmer to drag and drop pre-programmed visual elements into a user interface, eliminating the need to repetitively code them by hand.
Deployment of a Java® program can be very different from programs developed in other languages. There are several problems that might need to be overcome before successful distribution. Java® programs require that the Java® runtime environment be installed on the target system either as a browser plug-in or as a standalone application. A Java® application installation needs to check whether the JRE is actually installed and might need to be distributed with the JRE binary files that are native to the target system.
Certain web-based applications allow a Java® program to be installed directly from an online repository. This has the advantage of being able to tailor downloads to the configuration of the user’s system. It has the disadvantage of potentially taking a long time, depending on the number of classes, libraries and other files that will need to be installed.