These are the minimum APIs that are required to code a Java application. Java Optional/Extended APIs Are Java APIs that may be added to the Java Core APIs to specialize the development of a specific Java application No programmer uses only the Java Core APIs. The Java Core APIs are packaged in a Java Platform or Edition. Java Runtime Environment (JRE) which includes Java Virtual Machine (JVM) and Runtime Compiler The Java Runtime Environment executes Java bytecode inside a Java (Application) Virtual Machine. Java bytecode is created by compiling Java class code. Most browser users may access a webpage or local app to execute Java Bytecode. These users will be required to installed the JRE 6.4.2 Structure of a Java Application A Java program is called a class. A Java package is a technique for organizing Java classes into folders or Java packages can be stored in compressed files called JAR files. JAR files allow packages or classes to be organized by application or category, distributed and deployed (installed) for execution. One or more Jar files maybe further combined or compressed into a ZIP file to enable easier installation on Windows-based platforms. JAR contain META data that documents the contents of Java Packages and application security descriptors. Java application security may be enforced at the class, JAR, or server level. Java Core APIs Java Development Kit (JDK) or Software Development Kit (SDK) Java Software Platform or Java Edition, e.g., J2EE, J2SE, J2ME, Java Android, etc. Java Optional or Extended APIs Java Runtime Environment JRE 6.4.3 Open-Source Java Platforms and Editions Popular Open-Source Java Platforms/Editions are distributed from Oracle for various operating systems. The following platforms will contain an SDK and JRE which have been system tested to ensure that all packages are compatible.
Open-Source Java Platforms/Editions Description Comments Java 2 SE (Standard Edition) Version 8u74 J2SE provides platform for development and deployment of portable code for desktops Java 2 EE (Enterprise Edition) Version 7u2 J2EE is used to develop dynamic web applications that one normally sees in Blackboard or eCommerce applications. J2EE adds the following Server Application APIs to Java SE: Java Servlet, Java Server Faces, Enterprise Java Beans, RESTful Web Services, JSON Processing, Java EE Management, Java Message Service (JMS), Java EE Security Java Enterprise Applications requires a J2EE application server to test J2EE web applications. Oracle provides a light-weight open-source application server named Glass Fish. A more powerful open-source J2EE called Apache Tomcat is provided by the Apache Foundation IBM WebSphere, Red Hat's Middleware Suite, Oracle BEA services, and SAP NetWeaver provides proprietary applications servers and APIs than extends (improves) J2EE. Java 2 ME (Micro Edition) Version 8u2 J2ME adds a flexible collection of APIs to Java SE to develop applications running on embedded and mobile devices in the Internet of Things: sensors, gateways, mobile phones, personal digital assistants (PDAs), TV set-top boxes, printers and more. Java 2 ME includes flexible user interfaces, robust security (smart cards), built-in network protocols, and support for networked and offline applications that can be downloaded dynamically. Java 2 SE Embedded and Java Card may supplement or extend this edition. 6.4.4 Java Proprietary Editions, clients and servers IBM WebSphere, RedHat's JBOSS Middleware Suite, Oracle BEA services, and SAP NetWeaver provides proprietary J2EE-like applications servers and APIs than extends (improves) the open source J2EE standards. Many device manufacturers will provide APIs that will extend J2ME and will add functionally for their devices.
IBM z System me Procedural Application A Java or .NET Frameworks is a collection of program libraries, packages or namespaces to organize a collection of prewritten compiled programs. IBM mainframe operating systems, e.g., z/OS, do not use the concept of frameworks, but rather use the terminology of a subsystem. IBM Mainframe Procedural Applications Windows, UNIX and Linux Procedural Applications Object-Oriented Programming Languages Collection of Compiled Programs to Support Specific Requirements Subsystems A subsystem contains one or more PDSs Frameworks A framework contains one or more directories Frameworks A framework contains one or more directories Operating system storage structure to organize compiled programs Partitioned Data Set (PDS) Subdirectories and Folders Subdirectories and Folders Terminology used to describe storage structure of compiled code Library A library contains more than one compiled programs Library A library contains more than one compiled programs Java - Package .NET - Name A package or name space contains more than one classes Compiled programs load module or PDS member executable file Many will use the concepts of API and Frameworks (classes) interchangeably. This over simplification may not be acceptable. An Application Program "Interface" is a communication structure that specifies the rules for your customized classes to communicate and use the Framework classes. APIs are a part of a Framework. APIs are optional, but framework classes are not. When you confused about programming terminology, always return to the analogy of the building contractor (the framework classes) and my wife's decorating and finishing ideas (the customized classes). After watching an episode of HGTV, my wife calls the contractor and requests that the bed room be painted in "Dorian Grey and the trim should be white and the trim should "pop-out". After finishing his Iron City beer the contractor calls me, "What is your wife talking about?" So I became the "building contractor and wife interface." First, the building contractor didn't understand my wife's specifications for the color Dorian Grey. Second, the contractor did not know the name of paint manufacturer, stock number, type of paint finish and other painting requirements. And third, the building contractor did not also understand "what the color white was" or "what specific trim was to be painted." The bottom line the contractor required additional details that be used to purchase the paint and then specify procedural requirements for his painters.