Java technology
The Java technology ( English Java Technology ) is an original by Sun (now Oracle developed group) collection of specifications , on the one hand, the Java programming language and other different runtime environments for computer programs define. These computer programs are mostly written in Java.
The following components belong to Java technology:
- the programming language Java to programs to formulate
- the Java Development Kit - a development tool , the basic parts as a translator and libraries contains
- the Java runtime environment - a standardized software platform to run the developed programs.
target
With Java technology, one and the same program should be able to run on different computer systems. This platform independence is achieved that the source code first in bytecode compiled is the first on the target system from the Java runtime environment ( Java Runtime Environment , shortly JRE ) in the respective starting program machine language is translated. The bytecode thus functions as an intermediate code between the programming language and machine language.
The Java runtime environment must be installed on the target system. It exists for widely used operating systems such as Microsoft Windows , Linux , Solaris , Mac OS X , AIX and many others. There are also JREs not only for server and desktop operating systems, but also for many embedded systems such as cell phones, PDAs and smart cards as well as for other technical platforms such as cars and TV. Platform independence ends with systems for which no Java Virtual Machine exists, i.e. mostly older or very exotic systems.
Components
Java technology consists of the following parts:
Programming language |
Java source code (.java) | |
JDK | Development tools Java compiler, ... |
|
Java bytecode (.class, .jar) | ||
JRE | Java programming interface (API) | |
Java Virtual Machine (JVM) with just-in-time compilation |
||
Operating system |
Windows, Linux, Solaris, Mac OS X, ... |
Java programming language
Java is an object-oriented programming language and a registered trademark of Oracle. The design of the Java programming language had five main goals:
- It should be a simple, object-oriented , distributed and familiar programming language .
- It should be robust and safe .
- It should be architecture- neutral and portable .
- It should be very efficient .
- It should be interpretable , parallelizable and dynamically linked .
Development tools for Java programs
They contain compilers that translate the source code into Java bytecode , documentation tools and tools for testing programs. Programs for the Java platform are usually created using the Java programming language . The use of other programming languages is possible, e.g. B. Nice or Groovy .
Java runtime environment (platform)
The Java runtime environment (JRE) is a software platform with which programs can be executed largely independently of the underlying operating system. It defines the application programming interfaces (APIs) clearly and independently of the machine and contains the Java Virtual Machine (JVM), which is responsible for executing the Java bytecode. It is available free of charge for most operating systems.
A distinction is made between the following Java platforms:
- Java Platform Java Card
- Reduced Java standard in order to be able to run so-called Java Card applets on chip cards.
- Java Platform, Micro Edition (Java ME)
- Platform for so-called embedded consumer products such as cell phones or PDAs.
- 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.
history
The original version of Java - including Oak ( O bject A pplication K ernel) called - has been in a period of 18 months from spring 1991 to summer 1992 under the name The Green Project by Patrick Naughton, Mike Sheridan, James Gosling and Bill Joy and nine further developers on behalf of the US computer manufacturer Sun Microsystems. James Gosling was the main developer. A remnant of the Green project is the Duke of Joe Palrang, which has become a well-known symbol or mascot.
The name Oak had, according to rumors, its origin in an oak ( English oak ) that stood in front of the window of James Gosling. Due to legal problems, however, the name (there was already software with this name) had to be discarded. It was decided to use the name Java after a strong type of coffee that is used especially for espresso ( Java bean ) and was preferred by the developers.
The goal was not just to develop a further programming language, but a complete operating system environment, including a virtual CPU , for a wide variety of purposes. According to legend, the system should be able to control a coffee machine , for example .
The development took place in an inconspicuous office building on Sand Hill Road in Menlo Park . During the separate development phase, there was no exchange with Sun Microsystems . In the summer of 1992 the first Oak-based application was finally completed - “an interactive, handheld home entertainment device controller with an animated touchscreen user interface”. This technical demonstration of a touchscreen -based device control with an animated graphic user interface was called * 7 ( Star Seven ) .
Could be after the screening of Star Seven, with the number of devices controlled interactively companies were aware of the cable television industry, and from the back room project The Green Project , the company was first person . The office became an office building at 100 Hamilton Avenue in Palo Alto .
Since the workforce has now grown from 13 to 70 employees and the time for interactive digital value-added services in the field of cable television was not yet ripe, the young company looked for new fields of activity. After a three-day meeting of John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing and Eric Schmidt in "The Inn at Squaw Creek" near Lake Tahoe , it quickly became clear: it should be the Internet .
Based on the forefather of all graphical web browsers , Mosaic , a web browser expanded to include Java was created - the WebRunner (based on the film Blade Runner ). It was later WebRunner in HotJava renamed.
In March 1995 the first alpha version (1.0a2) of the Java source code was released to the public. A little later, on May 23, 1995, Java was officially presented to the public for the first time, in the "San Jose Mercury News".
The breakthrough came with the integration of Java into the Netscape Navigator browser - sealed by a handshake between Eric Schmidt and George Paolini from Sun Microsystems and Marc Andreessen from Netscape - at 4 a.m. in a room in the Sheraton Palace Hotel near the Conference center.
The company Oracle - which bought Sun Microsystems in January 2010 - wants to further develop Java technology together with the Java Community Process in the direction of free and open source software ( OpenJDK ).
The name Java
The name for the new technology was quickly found: Most programmers preferred the street café "Java City - roasters of fine coffee" in Menlo Park, not far from their office building, where they went now and then during their lunch break to have a coffee after dinner to drink. The programmers' favorite type of coffee was called "Java". This name was therefore also used for the new technology. The name " JavaBeans " is also derived from this incident.
Sun Microsystems sometimes uses different version numbers in marketing and in-house development. So that was Java version 1.2 is not marketed as a 1.2, but as "Java 2 Platform". Internally, the version numbers remained with the 1.x scheme, so that product names such as "Java 2 Standard Edition 1.4.2" resulted. This discrepancy has at least been abandoned with the product names. The product is now called "Java Standard Edition 7"; however, the internal version number is still 1.7.
Versions
Legend: | Older version; no longer supported | Older version; still supported | Current version | Future version |
---|
version | Code name | publication | End of free support |
---|---|---|---|
JDK 1.1.4 | Sparkler | September 12, 1997 | |
JDK 1.1.5 | Pumpkin | 3rd December 1997 | |
JDK 1.1.6 | Abigail | April 24, 1998 | |
JDK 1.1.7 | Brutus | September 28, 1998 | |
JDK 1.1.8 | Chelsea | April 8, 1999 | |
J2SE 1.2 | Playground | 4th December 1998 | |
J2SE 1.2.1 | (none) | March 30, 1999 | |
J2SE 1.2.2 | Cricket | July 8, 1999 | |
J2SE 1.3 | Kestrel | May 8, 2000 | December 2006 |
J2SE 1.3.1 | Ladybird | May 17, 2001 | |
J2SE 1.4.0 | Merlin | February 13, 2002 | October 2008 |
J2SE 1.4.1 | Hopper | September 16, 2002 | |
J2SE 1.4.2 | Mantis | June 26, 2003 | |
J2SE 5.0 (1.5.0) | tiger | September 29, 2004 | October 2009 |
JSE 6.0 | (Mustang) | December 11, 2006 | February 2013 |
JSE 7.0 | (Dolphin) | July 28, 2011 | April 2015 |
JSE 8.0 | - | March 18, 2014 | January 2019 (commercial use) December 2020 (non-commercial) |
JSE 9.0 | - | July 27, 2017 | 20th March 2018 |
JSE 10.0 (18.3) | - | 20th March 2018 | 25th September 2018 |
JSE 11.0 (18.9) LTS | - | 25th September 2018 | |
JSE 12.0 | - | 19th March 2019 | |
JSE 13.0 | - | 17th September 2019 | |
JSE 14.0 | - | 17th March 2020 |
version | Packages | Classes, Enums and Interfaces | Modules |
---|---|---|---|
JDK 1.0 | 8th | 212 | |
JDK 1.1 | 23 | 504 | |
JDK 1.2 | 59 | 1520 | |
JDK 1.3 | 76 | 1842 | |
JDK 1.4 | 135 | 2991 | |
J2SE 5.0 | 166 | 3279 | |
JSE 6.0 | 203 | 3793 | |
JSE 7.0 | 209 | 4024 | |
JSE 8.0 | 217 | 4240 | |
JSE 9.0 | 315 | 6005 | 78 |
JSE 10.0 | 314 | 6002 | 77 |
JSE 11.0 | 235 | 4410 | 59/72 |
Version 1
Java version 1.0, released in 1996, still contained a manageable number of standard packages, which grew rapidly in later versions:
-
java.lang
: elementary classes, e.g. B.Object
andSystem
-
java.io
: Input and output -
java.util
: z. B. Data structures and a date class -
java.net
: simple internet protocol classes -
java.awt
: basic classes for graphical user interfaces -
java.applet
: a class for the well-known applets
Although this new language was primarily intended for the development of applets, it already offered possibilities in the first version that went far beyond that.
Version 1.1
A language extension was made in 1997 with Java 1.1, the syntax was extended to include the concept of inner classes . This went hand in hand with a conversion of the event handling to a callback system with so-called listeners .
In addition, the standard library has been expanded:
- Classes for internationalization (so-called "resource bundles")
- Java Components , the Java Beans
- The JAR file format for packaging entire libraries or applications as Java archives
- Numerical Calculation Classes (
BigInteger
andBigDecimal
) - A protocol for distributed programs called Remote Method Invocation (RMI)
- Object serialization for the persistent storage of objects, e.g. B. in files
- JDBC for access to relational databases
- Security functions, e.g. B. for signing JAR files and applets
Swing was already available in versions 1.1.5 and higher, but this framework was not yet part of the official Java. It was particularly problematic that with the release of 1.2, Swing had a different package structure and made porting necessary.
Version 1.2
Java 2 (JDK 1.2) was released in 1998. When this version was released, Sun spoke of Java 2, accordingly the packages are called Java 2 Platform, Standard Edition (J2SE) and instead of Java Development Kit (JDK) it is called Java 2 Software Development Kit ( J2SDK) .
In this version, a just-in-time compiler was introduced in addition to the existing interpreter ; this accelerates the execution of Java programs significantly. The HotSpot just-in-time compilation including adaptive optimization was offered as an extension for Java 1.2; from Java 1.3 onwards, HotSpot was offered as the sole JVM from Sun.
The standard library has been expanded again:
- New interfaces and implementations for collections , i.e. data structures such as lists, sets and maps (associative lists )
- The Swing surface library
- New graphics functions ( Java 2D )
- Drag and drop functionality
- Improved audio functions
- A CORBA interface
- Weak references - these are references that do not prevent the garbage collector from removing the referenced object
In 1998 the Java Community Process (JCP) was also introduced. This organization has been managing changes to the Java specification since then. A Java Specification Request (JSR) is created for proposed changes , which goes through various phases before the changes are implemented in Java.
Version 1.3
In 2000, J2SE 1.3 appeared as the next evolutionary step, the API was expanded again. An engine with hotspot optimization was also introduced. This means that frequently used code fragments (hotspots) are translated from the bytecode into native machine code at runtime. The result was a significantly increased execution speed.
API extensions:
- Java Naming and Directory Interface (JNDI)
- Java Sound API
Version 1.4
The language itself was only expanded again in 2002 with the appearance of J2SE 1.4, which was last done with version 1.1. Assertion support has been added. The API has also been expanded, which should make server programming easier in particular.
The last version of Java 1.4 was Java SE 1.4.2_42. J2SE 1.4 reached “End of Public Updates” in October 2008.
See also: Servlet , Java Web Start , JSP , J2EE , J2ME , Javadoc , Blackdown Java
Version 5.0
Java 5.0 was released on September 30, 2004 as the successor to version 1.4. The apparent version jump from 1.x to 5 is the introduction of a so-called product number. These product numbers are intended to represent the Java versions to the outside world in the future. Internally, the same product version should be named after the familiar, traditional version number. Java 5.0 corresponds to the internal version number 1.5, Java 6.0 corresponds to 1.6 etc. The "2" z. B. from J2EE also disappeared from version 5.0 of the Java Enterprise Edition. It is now called Java EE 5.
In version 5 there were extensive changes to the language as well as further API extensions:
- Generic types (Generics)
- Simplified syntax for iterating over collections, maps and arrays
- Autoboxing / -unboxing (i.e. implicit conversion of primitive data types into objects and back)
- Metadata with the help of annotations
- Syntactic support for enumeration values ("enumerations")
- Support for variable argument lists of methods
- Static import of classes
- Extended look and feels
- Auxiliary classes for concurrent programming in the new package
java.util.concurrent
- covariant result types for methods
The extensions of the input / output functions ( JSR -203) initially planned for Java 5 ("Tiger" release) were first implemented on Java 6 ("Mustang" release) and then at the beginning of 2006 on Java 7 ("Dolphin" release) postponed.
The last version of Java SE 5 was JavaSE 5.0u45. JavaSE 5 reached "End of Public Updates" in October 2009.
Version 6
Java version 6 was released on December 11, 2006. Particular attention was paid to diagnosis, monitoring and management. A framework for working with various scripting languages, such as B. PHP , Python , Ruby and JavaScript were introduced.
Further innovations were an improved display of desktop applications and the integration of Java DB , a relational database implemented in Java and based on Apache Derby .
The version 6u10 released in October 2008 did not, as usual, only bring bug fixes, but various changes to the JVM that were not waited until Java 7 was released. The most important innovations that were requested in advance included:
- A "Next Generation Java Plugin" that offers the website operator more options via integrated applets
- The Java kernel intended for web applications, which installs a minimal JVM if necessary and only downloads the necessary packages and saves them locally
- The Java Quick Starter, with the help of which the start time of Java applications is significantly reduced.
A complete list and detailed descriptions can be found in the announcement for "Update 10". Further improvements to the virtual machine, which were originally planned for Java 7, were integrated in Java 6 and delivered in several steps from "Java 6 Update 14".
The last planned version of Java SE 6 was "Java SE 6 Update 45", it was submitted in April 2013 for Java SE 6 for February 2013, despite the announced "End of Public Updates" - the end of public updates. The current version of Java EE 6 is "Java EE 6 Update 4". In December 2012, Oracle began tentatively upgrading some installations from JavaSE 6 to JavaSE 7 automatically. For February 2013 it was planned to update all installed 32-bit versions to Java 7 using the automatic mechanism.
JavaSE 6 reached “End of Public Updates” in February 2013.
Version 7
Java version 7 was completed on July 28, 2011.
Above all, existing functionalities have been improved and expanded. These are among others:
- A new file system API (NIO.2) that improves the speed of file system operations, provides better options for copying and moving files, includes methods for traversing directory structures, and allows reliable detection and handling of symbolic links .
- Libraries for the network protocols Stream Control Transmission Protocol ( SCTP ), Sockets Direct Protocol ( SDP ) and TLS 1.2. A newer IPv6 network stack is now used where possible, especially under Windows .
- Update of the Unicode support to Unicode 6.0 (from Unicode 4.0 to Java 6), the JDBC database interface and the locale parameters , which now implement the IETF BCP 47 and UTR 35 standards .
- The look and feel nimbus introduced with Java 6 Update 10 will become an integral part of the specification.
- An XRender pipeline for Java 2D that accelerates the rendering of graphical elements on Linux.
- Improved support of Java bytecode for dynamic programming languages .
- Smaller language improvements in the context of Project Coin , such as the usability of strings in switch statements.
A list and detailed descriptions of the functionalities implemented with Java 7 can be found in the documentation of the OpenJDK Java 7 project .
Java 7 reached the "End of Public Updates" - the end of public updates - in April 2015. The last publicly available version of Java 7 was "Update 80" from April 14, 2015, which also contained "non-critical" bug fixes. The "Premium Support" for version 7 was planned until July 2019, the "Extended Support" until July 2022.
Version 8
Java 8 was released on March 18, 2014. It is the first LTS version based on Oracle's new support scheme.
There will be free updates for them until January 2019 for commercial users and until the end of 2020 for private use.
With Java 8, innovations originally planned for Java 7 were subsequently submitted and synergies were incorporated that resulted from the purchase of Java by Oracle. Among other things, the following innovations have been implemented:
- Integration of Oracle JRockit functionalities such as improved contended locking in the OpenJDK
- Virtual extension methods and closures ( Lambda project )
- Extensions to the Collections API made possible by the Lambda project
- New Date and Time API similar to Joda Time
- Improvements in garbage collection, reflection, collections, generics and annotations
- Other minor language improvements such as annotations for Java types
- Various security improvements
- Various performance improvements, especially with regard to parallelization
- Method implementation in interfaces ("Default Interface")
The current version of July 16, 2019 is Java 8 "Update 231".
Info: Access to Oracle Java SE 8 updates.
Version 9
Java 9 was released on September 21, 2017. It is a "Non-LTS" version and there are therefore only updates up to the release of the successor version. Java 9 brought with "Project Jigsaw" a new module system that extends Java with modules as a new language feature. Jigsaw also brought fundamental structural changes to the Java platform. The "Project Kulla" brought an integration of the jshell into Java.
Version 10
Java 10 was released on March 20, 2018 and thus, as announced in autumn 2017, only 6 months after version 9. It is also a "non-LTS" version.
Version 11
Java 11 was released on September 25, 2018 as an LTS version. For the productive use of Oracle JRE, a fee-based "Java SE Subscription" is required since this version. It can only be used free of charge in development and test environments. Other runtime environments such as OpenJDK , Azul , IBM SDK offer different free / commercial support periods.
Version 12
Java 12 was released on March 19, 2019.
Version 13
Java 13 was released on September 17, 2019.
Version 14
Java 14 was released on March 17, 2020.
License
On November 13, 2006, Sun announced that by the end of the second quarter of 2007, all Java technology would be released under the license terms of GPL Version 2 . On May 8, 2007 it was announced that this had happened for most of the technology.
A problem for free software developers until then was that while Java was free, it did not meet the free software guidelines. Problems arose in this context, above all, when "non-free" classes from Sun were used when creating programs that free Java compilers or Java runtime environments cannot use. In these cases, users of free JVMs were forced to fall back on Sun's JVM. In this context, "Java trap" (was also from the Java Trap ) spoken.
Dedicated developers have responded by developing a considerable amount of free software for interpreting, compiling and executing Java programs, such as: B. GNU Classpath , GNU Compiler for Java , Kaffe , Apache Harmony or IcedTea .
However, the license terms for Oracle's Java Compatibility Kit (JCK) were perceived by the Apache Software Foundation and the Linux Standard Base working group as a deliberate prevention of alternative implementations. a. led to the exclusion of Java from the current LSB standard 4.1.
Applications
Java is used, for example, in the following areas:
- In the Internet / Intranet as a server-side service in the form of an application server (e.g. Apache Tomcat , JBoss , GlassFish , etc.)
- In the Internet / Intranet as a client-side application as a Java applet or rich Internet application , for example through JavaFX .
- For creating platform-independent desktop applications (well-known examples of this are e.g. the development platforms Netbeans and Eclipse ).
- Applications on chip cards (so-called Java cards ).
- For applications on mobile phones based on adapted Java versions such as JavaME or Dalvik .
- As embedded Java in so-called embedded systems , i.e. on computers that are integrated in technical devices and control them. These include control devices for machines, elevators, household appliances and consumer electronics devices .
- As a real-time system (using Java Real Time), for example for traffic control systems.
criticism
Java offers several security advantages compared to directly executed programming languages , primarily because it is executed in a virtual machine . For example, an applet on a website is subject to security-related restrictions imposed by the virtual machine; the same applies analogously to Java applications. All of these run in a virtual machine and are not allowed to freely access any resources. Directly executed programming languages (without a virtual machine) do not offer these safety precautions at all and are therefore extremely insecure compared to Java.
If there are weaknesses in these security technologies due to errors in the virtual machine or in the class library, a malicious applet or application can exploit these weaknesses and possibly access resources to which it would normally not have access rights.
Java made the headlines several times from 2012 to 2013 because of such errors. In August 2012, for example, a publicly available exploit appeared on the Internet that bypasses all of Java sandboxing and other security procedures by simply turning them off. A few days later, this exploit ( CVE : 2012-4681) was integrated into numerous exploit frameworks, including Metasploit and Blackhole . Oracle then published an emergency update, but experts also found security gaps in the patched Java versions.
On January 10, 2013, the renowned computer magazine c't issued a recommendation for security reasons to uninstall the Java plug-in , and when using Internet Explorer even to completely uninstall Java. On January 11, 2013, the BSI followed this recommendation.
With the unscheduled or brought forward Java updates 7u11 to 7u13, the security problems were solved according to Oracle. The BSI then gave the all-clear for the use of Java.
Web links
- Customer and developer downloads (German)
- Java Technologies (English)
- Resources for Java development and use at java.net ( page no longer available , search in web archives )
- Critical Patch Updates, Security Alerts and Bulletins
Individual evidence
- ↑ The Java Language Environment - 1.2 Design Goals of the JavaTM Programming Language , James Gosling and Henry McGilton, May 1996
- ↑ Java Language Overview , 1995 Sun Whitepaper
- ↑ Wolfgang Weigend: The Java Platform Strategy. (Flash) slides for the lecture. Oracle, August 24, 2011, p. 5 , accessed January 8, 2012 .
- ↑ a b Reference: J2SE Code Names . In: Java Platform, Standard Edition (Java SE) . Sun Microsystems ( online [accessed January 8, 2012]).
- ↑ Steven Chan: Understanding J2SE 1.3 End-of-Life Implications for Apps 11i . ( oracle.com [accessed July 26, 2018]).
- ↑ Java SE EOL Policy. (No longer available online.) October 26, 2011, archived from the original on November 14, 2011 ; accessed on July 26, 2018 (English).
- ↑ a b c d e f Oracle Java SE Support Roadmap. Retrieved July 8, 2018 .
- ↑ a b Mustang and Dolphin… we'll miss you ( Memento of the original dated November 16, 2006 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. - No code names from JSE 6.0, Ray Gans's blog, August 15, 2006 (accessed October 12, 2009)
- ↑ Java 7 Releases by Date - Page at Java.com . Retrieved November 20, 2013.
- ↑ JDK 8 Schedule. Open JDK, August 20, 2012, accessed October 5, 2012 .
- ↑ a b c d e No more public updates for Java 8 business users after January 2019 [Poll] - JAXenter . In: JAXenter . April 23, 2018 ( jaxenter.com [accessed July 8, 2018]).
- ↑ JDK 9th Open JDK, January 5, 2017, accessed on January 5, 2017 (English).
- ↑ a b Alexander Neumann: Java 11 not only brings a changed support model. heise online , September 25, 2018, accessed on October 3, 2018 .
- ↑ JDK 12. Accessed October 8, 2018 .
- ↑ JDK 13. Retrieved November 5, 2019 .
- ↑ JDK 14. Accessed April 13, 2020 .
- ^ Robert Liguori, Patricia Liguori: Java 8 Pocket Guide - Instant Help for Java Programmers . O'Reilly Media, 2014, ISBN 978-1-4919-0086-4 .
- ↑ a b c Java SE 9 & JDK 9. Accessed October 8, 2018 (English).
- ↑ a b c Java SE 10 & JDK 10. Accessed October 8, 2018 (English).
-
↑
cd jdk11/src; find -name package-info.java | wc --lines
- ↑ a b Java 11 API Reference. Retrieved October 8, 2018 .
-
↑
cd jdk11/src; find -name module-info.java | wc --lines
- ↑ news.cnet.com
- ↑ url = http://www.sun.com/smi/Press/sunflash/2000-05/sunflash.20000508.3.xml
- ↑ a b c d e Oracle Java SE Support Roadmap. oracle.com, April 22, 2015, accessed April 27, 2015 .
- ↑ Version 1.5.0 or 5.0? , Java 5 Release Notes, accessed February 5, 2009
- ↑ Java API Specifications . Oracle. Retrieved May 17, 2019.
- ↑ JSR 203: More New I / O APIs for the Java Platform ("NIO.2"). In: Java Community Process. 2011, accessed October 5, 2014 .
- ↑ Oracle.com: Next-Generation Java Plug-In Technology Introduced in Java SE 6 update 10
- ↑ Java Runtime Environment Installation for JavaSE 6u10
- ↑ JavaTM Quick Starter for JavaSE 6u10
- ↑ Java SE 6 Update 10 FAQ: JavaTM SE 6 Update Release Notes .
- ↑ oracle: Java 6 Auto-Update to Java 7. oracle.com, accessed January 4, 2013 .
- ↑ Java Programming Language Enhancements - List of Core Java innovations in versions 5, 6, 7
- ↑ JDK 7 features
- ↑ Java SE Runtime Environment 7 Downloads. oracle.com, April 2015, accessed April 27, 2015 .
- ↑ a b Java releases. (Versions 7 and 8). java.com, July 18, 2017, accessed October 18, 2017 .
- ^ What's New in JDK 8. Oracle, accessed March 19, 2014 .
- ↑ How does Java 8 'new default interface model works at stackoverflow.com
- ↑ a b Free Java download . Oracle. Retrieved May 17, 2019.
- ^ JDK 9. In: OpenJDK. Oracle Corporation and / or its affiliates, June 7, 2017, accessed June 15, 2017 (English, project planning for JDK 9).
- ↑ The next step in Java modularization: Project Jigsaw migrates to the JDK-9 branch. Heise-Verlag, March 12, 2016, accessed on February 22, 2017 .
- ↑ Dr. Kristine Schaal, Dr. Rüdiger Grammes, Martin Lehmann: Java 9 brings the new Jigsaw module system. Informatik Aktuell, February 15, 2018, accessed on May 3, 2019 .
- ↑ jshell JEP. Open JDK, November 5, 2015, accessed November 10, 2015 .
- ↑ Hendrik Ebbers, Timo Brandstätter: Will Java now have to be paid? heise online , August 28, 2018, accessed on October 3, 2018 .
- ↑ JDK 12 . Retrieved March 22, 2019.
- ↑ JDK 13 . Retrieved September 17, 2019.
- ↑ JDK 14 . Retrieved March 25, 2020.
- ↑ sun.com ( Memento from August 26, 2007 in the Internet Archive )
- ↑ Mike Loukides: At last! Open source Java. (No longer available online.) November 2006, archived from the original on October 6, 2014 ; Retrieved October 6, 2014 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ JAVAONE: Sun - The bulk of Java is open sourced ( Memento from April 14, 2008 in the Internet Archive )
- ↑ Richard Stallman: Free but Shackled - The Java Trap . April 12, 2004
- ^ The ASF Resigns From the JCP Executive Committee. In: The Apache Software Foundation Blog. Apache Software Foundation, December 9, 2010, accessed October 5, 2014 .
- ↑ Linux Standard Base 4.1 without Java . heise.de. March 11, 2011. Accessed on November 16, 2011: “ Java, included in the Linux Standard Base 4.0 with the status“ Trial Use ”, has been removed from the new version. The reason for this are licensing problems with the Java Compatibility Kit (JCK), the existence of which is a prerequisite for a Java implementation to be allowed to call itself Java-compatible. The Apache Software Foundation accuses Oracle, as before Sun, of excluding competing Java implementations with the license conditions of the JCK. "
- ↑ Heise Security: Java-0-Day under the microscope . Retrieved February 22, 2013.
- ↑ Heise Security: Major emergency update for Java . Retrieved February 22, 2013.
- ↑ Java exploit (CVE-2012-4681) . Archived from the original on February 17, 2013. Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved March 23, 2013.
- ↑ Heise Security: Java-0-Day under the microscope . Retrieved February 22, 2013.
- ↑ CVE-2012-4681 at MITER (English)
- ↑ Dangerous hole in the current Java version . In: Heise Security . Retrieved January 10, 2013.
- ↑ Critical vulnerability in the current Java runtime environment . Federal Office for Information Security (BSI). Archived from the original on January 18, 2013. Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved January 13, 2013.
- ↑ February 2013 Critical Patch Update for Java SE Released . Retrieved February 5, 2013.
- ↑ Vulnerability in the current Java runtime environment closed. The manufacturer's update is available, BSI recommends that Internet users install the update. Federal Office for Information Security (BSI), January 14, 2013, accessed on March 26, 2013 : "After installing the Java security update, the browser plug-ins can also be activated and used again."