# Java Editions, Versions, Releases and Distributions
# Differences between Java SE JRE or Java SE JDK distributions
Sun / Oracle releases of Java SE come in two forms: JRE and JDK. In simple terms, JREs support running Java applications, and JDKs also support Java development.
# Java Runtime Environment
Java Runtime Environment or JRE distributions consist of the set of libraries and tools needed to run and manage Java applications. The tools in a typical modern JRE include:
- The java command for running a Java program in a JVM (Java Virtual Machine)
- The jjs command for running the Nashorn Javascript engine.
- The keytool command for manipulating Java keystores.
- The policytool command for editing security sandbox security policies.
- The pack200 and unpack200 tools for packing and unpacking "pack200" file for web deployment.
- The orbd , rmid , rmiregistry and tnameserv commands that support Java CORBA and RMI applications.
"Desktop JRE" installers include a Java plugin suitable for some web browser. This is deliberately left out of "Server JRE" installers.linux syscall read benchmarku
From Java 7 update 6 onwards, JRE installers have included JavaFX (version 2.2 or later).
# Java Development Kit
A Java Development Kit or JDK distribution includes the JRE tools, and additional tools for developing Java software. The additional tools typically include:
The javac command, which compiles Java source code (".java") to bytecode files (".class").
The tools for creating JAR files such as jar and jarsigner
appletviewer for running applets
idlj the CORBA IDL to Java compiler
javah the JNI stub generator
native2ascii for character set conversion of Java source code
schemagen the Java to XML schema generator (part of JAXB)
serialver generate Java Object Serialization version string.
the wsgen and wsimport support tools for JAX-WS
jdb the basic Java debugger
jmap and jhat for dumping and analysing a Java heap.
jstack for getting a thread stack dump.
javap for examining ".class" files.
jconsole a management console,
jstat , jstatd , jinfo and jps for application monitoring
A typical Sun / Oracle JDK installation also includes a ZIP file with the source code of the Java libraries. Prior to Java 6, this was the only publicly available Java source code.
From Java 6 onwards, the complete source code for OpenJDK is available for download from the OpenJDK site. It is typically not included in (Linux) JDK packages, but is available as a separate package.
# Java SE Versions
# Java SE Version History
The following table provides the timeline for the significant major versions of the Java SE platform.
-
by Roedy Green of Canadian Mind Products
# Java SE Version Highlights
| Java SE Version | Highlights |
|---|---|
| Java SE 8 | Lambda expressions and MapReduce-inspired Streams. The Nashorn Javascript engine. Annotations on types and repeating annotations. Unsigned arithmetic extensions. New Date and Time APIs. Statically linked JNI libraries. JavaFX launcher. Removal of PermGen. |
| Java SE 7 | String switches, try-with-resource, the diamond ( <> ), numeric literal enhancements and exception handling / rethrowing improvements. Concurrency library enhancements. Enhanced support for native file systems. Timsort. ECC crypto algorithms. Improved 2D graphics (GPU) support. Pluggable annotations. |
| Java SE 6 | Significant performance enhancements to JVM platform and Swing. Scripting language API and Mozilla Rhino Javascript engine. JDBC 4.0. Compiler API. JAXB 2.0. Web Services support (JAX-WS) |
| Java SE 5 | Generics, annotations, auto-boxing, enum classes, varargs, enhanced for loops and static imports. Specification of the Java Memory Model. Swing and RMI enhancements. Addition of java.util.concurrent.* package and Scanner . |
| Java SE 1.4 | The assert keyword. Regular expression classes. Exception chaining. NIO APIs — non-blocking I/O, Buffer and Channel . java.util.logging.* API. Image I/O API. Integrated XML and XSLT (JAXP). Integrated security and cryptography (JCE, JSSE, JAAS). Integrated Java Web Start. Preferences API. |
| Java SE 1.3 | HotSpot JVM included. CORBA / RMI integration. Java Naming and Directory Interface (JNDI). Debugger framework (JPDA). JavaSound API. Proxy API. |
| Java SE 1.2 | The strictfp keyword. Swing APIs. The Java plugin (for web browsers). CORBA interoperability. Collections framework. |
| Java SE 1.1 | Inner classes. Reflection. JDBC. RMI. Unicode / character streams. Internationalization support. Overhaul of AWT event model. JavaBeans. |
# Differences between Java EE, Java SE, Java ME and JavaFX
Java technology is both a programming language and a platform. The Java programming language is a high-level object-oriented language that has a particular syntax and style. A Java platform is a particular environment in which Java programming language applications run.
There are several Java platforms. Many developers, even long-time Java programming language developers, do not understand how the different platforms relate to each other.
# The Java Programming Language Platforms
There are four platforms of the Java programming language:
All Java platforms consist of a Java Virtual Machine (VM) and an application programming interface (API). The Java Virtual Machine is a program, for a particular hardware and software platform, that runs Java technology applications. An API is a collection of software components that you can use to create other software components or applications. Each Java platform provides a virtual machine and an API, and this allows applications written for that platform to run on any compatible system with all the advantages of the Java programming language: platform-independence, power, stability, ease-of-development, and security.
# Java SE
When most people think of the Java programming language, they think of the Java SE API. Java SE’s API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing.
In addition to the core API, the Java SE platform consists of a virtual machine, development tools, deployment technologies, and other class libraries and toolkits commonly used in Java technology applications.
# Java EE
The Java EE platform is built on top of the Java SE platform. The Java EE platform provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.
# Java ME
The Java ME platform provides an API and a small-footprint virtual machine for running Java programming language applications on small devices, like mobile phones. The API is a subset of the Java SE API, along with special class libraries useful for small device application development. Java ME applications are often clients of Java EE platform services.
# Java FX
Java FX technology is a platform for creating rich internet applications written in Java FX ScriptTM. Java FX Script is a statically-typed declarative language that is compiled to Java technology bytecode, which can then be run on a Java VM. Applications written for the Java FX platform can include and link to Java programming language classes, and may be clients of Java EE platform services.
# What is the difference between Oracle Hotspot and OpenJDK
Orthogonal to the JRE versus JDK dichotomy, there are two types of Java release that are widely available:
- The Oracle Hotspot releases are the ones that you download from the Oracle download sites.
- The OpenJDK releases are the ones that are built (typically by third-party providers) from the OpenJDK source repositories.
In functional terms, there is little difference between a Hotspot release and an OpenJDK release. There are some extra "enterprise" features in Hotspot that Oracle (paying) Java customers can enable, but apart from that the same technology are present in both Hotspot and OpenJDK.
Another advantage of Hotspot over OpenJDK is that patch releases for Hotspot tend to be available a bit earlier. This also depends on how agile your OpenJDK provider is; e.g. how long it takes a Linux distribution’s build team to prepare and QA a new OpenJDK build, and get it into their public repositories.
The flipside is that the Hotspot releases are not available from the package repositories for most Linux distributions. This means that keeping your Java software up-to-date on a Linux machine is usually more work if you use Hotspot.
Java ee и se в чем отличие
Java technology is both a programming language and a platform. The Java programming language is a high-level object-oriented language that has a particular syntax and style. A Java platform is a particular environment in which Java programming language applications run.
There are several Java platforms. Many developers, even long-time Java programming language developers, do not understand how the different platforms relate to each other.
The Java Programming Language Platforms
There are four platforms of the Java programming language:
Java Platform, Standard Edition (Java SE)
Java Platform, Enterprise Edition (Java EE)
Java Platform, Micro Edition (Java ME)
All Java platforms consist of a Java Virtual Machine (VM) and an application programming interface (API). The Java Virtual Machine is a program, for a particular hardware and software platform, that runs Java technology applications. An API is a collection of software components that you can use to create other software components or applications. Each Java platform provides a virtual machine and an API, and this allows applications written for that platform to run on any compatible system with all the advantages of the Java programming language: platform-independence, power, stability, ease-of-development, and security.
Java SE
When most people think of the Java programming language, they think of the Java SE API. Java SE’s API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing.
In addition to the core API, the Java SE platform consists of a virtual machine, development tools, deployment technologies, and other class libraries and toolkits commonly used in Java technology applications.
Java EE
The Java EE platform is built on top of the Java SE platform. The Java EE platform provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.
Java ME
The Java ME platform provides an API and a small-footprint virtual machine for running Java programming language applications on small devices, like mobile phones. The API is a subset of the Java SE API, along with special class libraries useful for small device application development. Java ME applications are often clients of Java EE platform services.
JavaFX
JavaFX is a platform for creating rich internet applications using a lightweight user-interface API. JavaFX applications use hardware-accelerated graphics and media engines to take advantage of higher-performance clients and a modern look-and-feel as well as high-level APIs for connecting to networked data sources. JavaFX applications may be clients of Java EE platform services.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices
Различия между Java SE, Java EE и Java ME?
Java предоставляет три издания JSE, JEE, JME, разберемся, что они собой представляют, чтобы понять их различия.
Java Standard Edition с помощью этого, вы можете разрабатывать автономные приложения. Это обеспечивает следующие пакеты:
- java.lang – Этот пакет содержит основы языка.
- java.util – классы и интерфейсы (API) связанные структуры сбора, события, структуры данных и других вспомогательных классов, таких как дата.
- java.io – классы и интерфейсы для работы с файлами, а также другие операции ввода и вывода.
- java.math – для арифметических операций.
- java.nio – Неблокирующие рамки ввода / вывода для Java.
- java.net – Этот пакет содержит классы и интерфейсы, связанные с сетями.
- java.security – классы и интерфейсы, такие как генерации ключей, шифрования и дешифрования, который принадлежит к каркасу безопасности.
- java.sql – для доступа / манипулирования данными, хранящимися в базах данных и источниках данных.
- java.awt – для создания компонентов GUI в Java.
- java.text – для обработки текста, даты, номера и сообщения.
- java.rmi – Предоставляет пакет RMI.
- java.time – Основной API для даты, времени и длительности.
- java.beans пакет содержит классы и интерфейсы, связанные с JavaBeans компонентами.
Java Enterprise Edition с помощью этого, вы можете разрабатывать приложения Enterprise. Это включает в себя:
- API, WebSocket, JavaServerFaces, Unified Expression Language.
- Характеристики веб-службы, такие как API для веб-служб RESTful, API для обработки JSON, API для JSON Bonding, архитектуры для XML связывания, API для XML веб-сервисов.
- Характеристики предприятия, такие как Dependency Injection, Enterprise JavaBean, Java Persistence API, Java Transaction API.
Java ME
Java Micro Edition с помощью этого, вы можете разрабатывать приложения, которые работают на мелких устройствах, таких как мобильные телефоны. Можете заглянуть в каталог мобильных приложений appvisor.ru для поиска идей.
Средняя оценка 4.2 / 5. Количество голосов: 6
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
Java SE or Java EE? Confused which one to use in your app.
![]()
If you are a novice to Java, let me first briefly introduce what Java is. Java is a high level, object oriented programming language which has its own set of syntaxes and styles. You may get the question what is “high level” and “object oriented” means. High level in the sense is that we are using a programming language which is very close to human language which is further away from machine language(binary instructions).Object oriented means is that ,we bind the data and functions in our program to an object and we use these objects then and again in the same or other programs. I know this really isn’t enough for the topic, OOP(Object Oriented Programming) as it is a very important area to learn in Java.
So, let’s get back to our topic. What kind of application are you going to develop in Java? Using Java you can either develop desktop, web or mobile applications.
Let’s get in to each one by one and discuss what Java editions can be used to develop them.
1. Desktop Applications
Simply speaking, a desktop application is a computer program that runs locally in a computer device. These applications must be developed for and installed on a particular operating system. The soft wares developed for billing in shops are examples for them. To build these kind of applications you need to have a knowledge on core java (technically we called as JSE-Java Standard Edition). There are many helpful sources around there in the internet about how to create your own desktop application using java. So what functionalities are provided by java SE for you to build the app?
Java SE (core java) provides the core functionalities of the java programming language. It contains all the libraries and APIs that any Java programmer should learn (java.lang, java.io, java. math, java.net, java.util, etc…).Its functionalities can be used for networking, security, database access (to store valuable data in the application), graphical user Interface (GUI) (for creating interfaces) and XML parsing.
2. Web Applications
This is a bit advance from desktop applications. These applications are delivered to our local device (such as desktop, laptop) over the internet from a remote server. The user accesses the web application using the web browser in his local device and works with resources available over the internet. (Ex: websites you browse ☺)
So, to build these kind of apps, you can go for the J2EE edition which is technically called as Java Enterprise Edition. This Java EE platform is actually built on top of the Java SE platform. (That is why Java SE is considered as a base technology for JEE, Spring, Spring MVC and etc…) You can use Java EE to develop web applications and also very large scale distributed systems, enterprise applications as the Java EE platform provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable and secure network applications.
So, I hope you have got an idea about which Java Edition is most suitable for your application in your head. You can find numerous helpful sources out there, to create any application from scratch. So no worries ☺. In the next article, I hope to cover the Java editions use for developing mobile applications. ☺