Java runtime environment
Java
|
|
---|---|
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 ).
- The Java Cryptography Extension (JCE) defines programming interfaces for various encryption methods.
- The Java Authentication and Authorization Service (JAAS) defines programming interfaces for the secure establishment of the identity of a user.
- The Java Secure Socket Extension (JSSE) enables secure communication via SSL .
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.
- Remote Method Invocation (RMI) is a procedure for calling objects that run on other computers.
- The Java Native Interface (JNI) offers the possibility to call libraries that have been programmed in C , C ++ or other languages.
- The Java Naming and Directory Interface (JNDI) is a uniform Java interface for many different directory services .
Optional Java packages and related technology
In addition to the core components of the Java platform, there are optional components that add additional functionality.
- The Java Management Extensions (JMX) define an interface for the system administration , by means of which a Java program can be monitored or reconfigured during execution, if it supports this. JMX has been a core component since Java version 5.
- JMX Remote is an extension of JMX across machine boundaries.
- Java Communications API enables access to hardware interfaces such as parallel ports or USB ports.
- Java Telephony API the connection of telephones to Java programs, for example to develop applications for call centers .
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:
- The Java plug-in enables Java applets to be run in Internet browsers .
- Java Web Start starts Java applications directly from the Internet . It stores them locally so that they are only reloaded when there is a new version.
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
- ^ Critical Patch Updates, Security Alerts and Bulletins. Accessed January 16, 2020 (English).
- ↑ 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
- Download the Java runtime environment - overview of all operating systems