Java virtual machine#Execution environment

The Java Runtime Environment (English Java Runtime Environment, JRE short ) is the runtime environment of Java technology. With their applications (Java applications ) are performed largely independent of the underlying operating system. For this, the runtime environment must be installed on the target system. For most operating systems, it is available free of charge. It provides a software platform, also known as the Java platform. It defines the application programming interfaces (APIs) clearly and machine-independent and contains the virtual machine (JVM).

  • 3.1 Core Technology 3.1.1 Safety
  • 3.1.2 Database Access
  • 3.1.3 Debugging
  • 3.1.4 documentation
  • 3.1.5 Other core components
  • 3.1.6 Optional Java package and related technology
  • 3.2.1 Deployment ( automated software distribution and installation )
  • 3.2.2 components
  • 3.2.3 GUI
  • 3.2.4 sound

Properties

In general, the runtime environment of the Java Virtual Machine (Java VM) that is responsible for the execution of Java applications, an application programming interface ( API for Application and Programming Interface ) and other libraries. The API provides the standard classes of the Java programming language provides such as " java.lang.String ". The virtual machine and API have to be coordinated and are therefore summarized the JRE. This can be considered as a virtual machine which provides several processors and an API library as the top layer, available in a virtual machine.

The Java run -time environment does not contain development tools such as compilers. For programming with Java, the Java Development Kit is a different programming environment, which also generates Java bytecode needed (JDK ) or.

The Java Control Panel ( Java Control Panel ) is an extension to the Control Panel in Microsoft Windows. There settings of the Java Runtime Environment ( JRE) can be made. During installation, the file is added jpicpl32.cpl or javacpl.cpl to the Windows system directory to it.

Editions

Since the release of Java 2, the Java run -time environment, in the form as provided by Sun, divided into editions, since Java applications can be used on different devices with different characteristics, from cell phones and PDAs via desktop computer to servers:

The Standard and Enterprise editions using the same virtual machine (Java Virtual Machine, JVM ), but the programming is in the Enterprise Edition to numerous additional libraries and add-on programs (in particular, for the application server ) supplements. Java EE is to be understood primarily as a specification that is often made use of for their use on commercial products of other manufacturers or open source software.

Version information is Java technology described in the article / section # versions.

Other variants

In addition to the implementations of Sun Microsystems ( Oracle since 2010 ), which are commonly used as a reference, there are general JVMs IBM. For real-time Java, or for specific embedded systems, both free implementations of the Java platform (coffee, Jameica ) as well as various projects of companies and universities are known. The Java components of the Android platform for mobile devices form another, only partially composed of SUN -component Java platform.

Sun Microsystems provides a set of application programming interfaces ( APIs) for the realization of software projects ready, distinguishing between those that are relevant for all types of Java applications ( Core Java Technology, German " core Java technology " ), and those that only desktop applications are relevant ( desktop Java Technology).

Core technology

Sun summarizes programming interfaces that are useful for both server and desktop applications together under the term Core Java Technology. So These programming interfaces are the core of Java technology.

Security

The issue of security has been much attention in the early days of Java, such as Java applets living in a so-called sandbox that prevents them from causing damage to the local machine. Recent enhancements affect the topics encryption and identity verification of communication participants ( authentication).

  • The Java Cryptography Extension (JCE ) defined programming interfaces for various encryption methods.
  • The Java Authentication and Authorization Service ( JAAS ) defined programming interface for the secure establishment of the identity of a user.
  • The Java Secure Socket Extension ( JSSE ) enables secure communication over SSL.

Database access

The access from Java to SQL databases through a programming interface called Java Database Connectivity (JDBC, German Java database connectivity ).

Debugging

For the connection of debuggers to virtual machines an entire architecture called Java Platform Debugger Architecture has been defined.

Documentation

The Javadoc tool generates Java source code from HTML files that give a good overview of all the class libraries. Add The possibility of user-defined plug-ins, can thus also produce other types of files from Java source code with little effort.

Other core components

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

  • Remote Method Invocation ( RMI), a method of call objects running on different machines.
  • The Java Native Interface (JNI ) provides the ability to access libraries that have been programmed in C, C or other languages ​​.
  • The Java Naming and Directory Interface ( JNDI ) is a standard Java interface for many different directory services.

Optional Java package and related technology

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

  • The Java Management Extensions (JMX) define an interface for system administration, by means of a Java program can be monitored or reconfigured during execution, if it supports it. Since Java version 5 JMX is a core component.
  • JMX Remote is an extension of JMX over machine boundaries.
  • Java Communications API provides access to hardware interfaces, such as parallel ports or USB ports.
  • Java Telephony API to develop the connection of telephones to Java programs, for example, applications for call centers.

Desktop technology

Programming interfaces that are needed primarily for applications with a graphical user interface, Sun summarizes under the term desktop Java Technology.

Deployment (automated software distribution and installation)

Deployment is the automated distribution of software on many computers and install it. The Java runtime environment JRE offers this two methods:

  • The Java plug - in allows you to run Java applets in Internet browsers.
  • Java Web Start launch Java applications directly from the Internet. It stores them locally, so they are only reloaded if 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) in Java called Java Foundation Classes (JFC ). In addition to the basic Abstract Window Toolkit ( AWT) They contain more class libraries:

  • Swing is an extensive library of GUI components. Integrated into Swing methods are for use by disabled people, which are subsumed under the term accessibility.
  • Java 2D is a class library for creating two dimensional graphics.
  • Methods for the internationalization of graphical user interfaces.

Sound

For outputting audio files, for example, in MIDI or WAV format, there is a class library called Java Sound.

Web applications

Web applications ( server-based applications whose user interaction takes place via a browser ) usually consist of JSPs (Java Server Pages) and servlets. The necessary interfaces and classes are located in the Enterprise Edition. Together with the Java Beans can be quite comfortable writing applications that conform to the MVC pattern. A variety of frameworks is based on this API. Since 2004, the Java platform includes Java Server Faces a private API for Web applications that are based on the MVC pattern.

Persistence

To store data permanently ( to " persist "), the Enterprise Edition, Enterprise Java Beans ( EJBs ) are available. There Entity Beans come ( for mapping technical objects or entities ), session beans ( for mapping of the workflow) and Message Driven Beans ( for asynchronous communication ) are used. The rather cumbersome and non-object- oriented approach is 3.0 overhauled with the latest specification EJB. There are many frameworks that offer alternatives to the persistence ( for example, JDO or Hibernate ).

As elementary persistence, the Java core libraries offer two other methods:

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

Optional Java package and related technologies

In addition to the above components of the Java platform, which must always be present, there are still a number of optional components that can be installed if needed. These include:

  • The Java Media Framework (JMF ) enables the output of multimedia data, such as video
  • The class library Java 3D provides classes for displaying three-dimensional, animated and interactive graphics ready
  • Java Advanced Imaging includes classes for editing image files
  • Java Speech generated from text spoken language
  • The JavaHelp system can be used for creating help documentation for Java applications
432441
de