Java runtime environment

from Wikipedia, the free encyclopedia
Java

logo
Basic data

developer Sun Microsystems (subsidiary of Oracle Corporation )
Current  version Version 8 Update 251
( April 14, 2020 )
operating system Windows , Solaris , Linux , macOS
programming language Java , C
License Freeware
German speaking Yes
www.oracle.com/de/

The Java Runtime Environment ( English Java Runtime Environment , shortly JRE ) is the runtime environment of Java technology . With it, programs ( Java applications ) are executed largely independently of the underlying operating system. To do this, the runtime environment must be installed on the target system. The Java JRE is chargeable for commercial use, the OpenJDK is free, it exists for Windows, Linux and macOS. It represents a software platform , also called the Java platform . It defines the application programming interfaces (APIs) clearly and independently of the machine and contains the virtual machine (JVM) .

properties

In general, the runtime environment consists of the Java Virtual Machine ( Java VM ), which is responsible for executing the Java applications, a programming interface ( API , for Application and Programming Interface ) and other program libraries . The API provides the standard classes of the Java programming language , such as " java.lang.String". The virtual machine and the API must be coordinated with one another and are therefore combined to form the JRE. This can be viewed as a virtual computer, which provides a number of processors in a virtual machine and an API as the top library layer.

The Java runtime environment does not contain any development tools such as compilers . For programming with Java is Java Development Kit ( JDK ) or any other programming environment, which also Java - bytecode generated needed.

Special features for Microsoft Windows

The Java Control Panel is an extension for the Microsoft Windows control panel. Settings for the Java runtime environment (JRE) can be made there. During installation, the jpicpl32.cpl or javacpl.cpl file is added to the Windows system directory.

Editions

Since the appearance of Java 2, the Java runtime environment in the form in which it is made available by Sun has been divided into editions , since Java applications can be used on different end devices with different characteristics, from mobile devices to desktop computers to Servers:

Java Platform Java Card
Allows Java card applets to run Java applets on chip cards following a reduced Java standard.
Java Platform, Micro Edition ( Java ME )
Platform for so-called embedded consumer products , such as smartphones or tablets.
Java Platform, Standard Edition ( Java SE )
Collection of Java programming interfaces for general use on PCs, servers or similar devices. Java SE serves as the basis for the Java EE and Java ME technologies.
Java Platform, Enterprise Edition ( Java EE )
Java SE, enriched with programming interfaces for the transaction-based execution of multi-layer corporate and web applications.

The Standard and Enterprise Editions use the same virtual machine ( Java Virtual Machine , JVM), but the programming interface in the Enterprise Edition is supplemented by numerous additional libraries and additional programs (especially for the application server ). Java EE is primarily to be understood as a specification, for the use of which mostly commercial products from other manufacturers or open source software are used.

Version information is described in the article / section Java Technology #Versions .

Other variants

In addition to the implementations from Sun Microsystems ( Oracle since 2010 ), which are usually used as references, there are general JVMs from IBM . For real-time Java or for special embedded systems , both free implementations of the Java platform ( Kaffe , JamaicaVM ) and various projects from companies and universities are known. The Java components of the Android platform for mobile devices form another Java platform that only partially consists of SUN components.

APIs

Sun Microsystems provides a number of programming interfaces ( APIs ) for the implementation of software projects and differentiates between those that are relevant for all types of Java applications (Core Java Technology, German "Java core technology") and those that are only for Desktop applications are relevant (Desktop Java Technology).

Core technology

Sun groups programming interfaces that are useful for both server and desktop applications under the term Core Java Technology . These programming interfaces therefore form the core of Java technology.

safety

A lot of attention was paid to the topic of security in the early days of Java, for example Java applets live in a so-called sandbox , which is supposed to prevent them from causing damage to the local computer. Newer enhancements concern the topics of encryption and checking the identity of communication participants ( authentication ).

Database access

Access from Java to SQL - databases via a programming interface called Java Database Connectivity (JDBC, German Java database connectivity).

Debugging

A whole architecture called Java Platform Debugger Architecture was defined for connecting debuggers to virtual machines .

documentation

The Javadoc tool generates HTML files from Java source text , which give a good overview of entire class libraries . With the option of adding freely defined plug-ins , other types of files can also be generated from Java source text with little effort.

Other core components

In addition to procedures for internationalization , mainly through the use of Unicode and the ResourceBundle class (see Java Platform, Standard Edition ), the Java platform also includes other basic programming interfaces.

Optional Java packages and related technology

In addition to the core components of the Java platform, there are optional components that add additional functionality.

Desktop technology

Programming interfaces, which are primarily required for applications with a graphical user interface, are summarized by Sun under the term Desktop Java Technology .

Deployment (automated software distribution and installation)

Deployment is the automated distribution of software to many computers and installation on them. The Java runtime environment JRE offers two methods for this:

Components

With the JavaBeans , Java has its own framework for software components .

GUI

The standard class libraries for creating graphical user interfaces ( Graphical User Interface , GUI) using Java called Java Foundation Classes (JFC). In addition to the basic Abstract Window Toolkit (AWT), they contain other class libraries:

  • Swing is an extensive library of GUI components. Swing integrates procedures for use by disabled people, which are summarized under the term accessibility .
  • Java 2D is a class library for creating two-dimensional graphics.
  • Procedure for the internationalization of the graphical user interfaces.

Sound output

There is a class library called Java Sound for outputting sound files, for example in MIDI or WAV format .

Web applications

Web applications (server-based applications whose user interaction takes place through a browser) usually consist of JSPs ( JavaServer Pages ) and servlets . The necessary interfaces and classes are in the Enterprise Edition . Together with the JavaBeans, it is very easy to write applications that meet the MVC pattern . A large number of frameworks are based on this API. Since 2004, the Java platform with JavaServer Faces has its own API for web applications, which are based on the MVC pattern.

Persistence

The Enterprise Edition provides the Enterprise JavaBeans (EJBs) in order to save data permanently ("persist") . There are Entity Beans (for mapping technical objects or entities), session beans (to map the workflow ) and Message Driven Beans (for asynchronous communication ) are used. The rather cumbersome and not object-oriented approach is being completely overhauled with the latest specification EJB 3.0. There are numerous frameworks that offer alternatives to persistence (for example JDO or Hibernate ).

The Java core libraries offer two further methods as elementary persistence mechanisms:

  • The serialization of object trees in binary files via classes of the package " java.io" and
  • the serialization of JavaBeans in XML files via classes of the package " java.beans".

Optional Java packages and related technologies

In addition to the components of the Java platform mentioned above, which must always be present, there are also a number of optional components that can be installed if required. This includes:

  • the Java Media Framework (JMF) enables the output of multimedia data such as videos
  • the Java 3D class library provides classes for displaying three-dimensional, moving and interactive graphics
  • Java Advanced Imaging contains classes for manipulating image files
  • Java Speech creates spoken language from text
  • the JavaHelp system can be used to create help documentation for Java applications

Individual evidence

  1. ^ Critical Patch Updates, Security Alerts and Bulletins. Accessed January 16, 2020 (English).
  2. Download. Retrieved January 16, 2020 .

literature

  • Bill Venners: Inside the Java Virtual Machine. 2nd Edition. McGraw-Hill, New York 1999, ISBN 0-07-135093-4 (The standard work; online version ; incomplete; out of print as a book)

Web links