Java Language
Java-edities, versies, releases en distributies
Zoeken…
Verschillen tussen Java SE JRE of Java SE JDK-distributies
Sun / Oracle-releases van Java SE zijn er in twee vormen: JRE en JDK. Eenvoudig gezegd ondersteunen JRE's Java-toepassingen en JDK's ondersteunen ook Java-ontwikkeling.
Java Runtime Environment
Java Runtime Environment of JRE-distributies bestaan uit de set bibliotheken en tools die nodig zijn voor het uitvoeren en beheren van Java-applicaties. De tools in een typische moderne JRE omvatten:
- Het
java
commando voor het uitvoeren van een Java-programma in een JVM (Java Virtual Machine) - Het
jjs
commando voor het uitvoeren van de Nashorn Javascript-engine. - Het
keytool
commando voor het manipuleren van Java-keystores. - De opdracht
policytool
voor het bewerken van beveiligingsbeleid voor sandboxbeveiliging. - De tools
pack200
enunpack200
voor het inpakken en uitpakken van het "pack200" -bestand voor webimplementatie. - De opdrachten
orbd
,rmid
,rmiregistry
entnameserv
die Java CORBA- en RMI-toepassingen ondersteunen.
"Desktop JRE" -installers bevatten een Java-plug-in die geschikt is voor een bepaalde webbrowser. Dit wordt bewust weggelaten uit "Server JRE" installers.linux syscall lees benchmarku
Vanaf Java 7 update 6 hebben JRE-installatieprogramma's JavaFX (versie 2.2 of hoger) opgenomen.
Java Development Kit
Een Java Development Kit of JDK-distributie omvat de JRE-tools en aanvullende tools voor het ontwikkelen van Java-software. De extra tools omvatten meestal:
- De opdracht
javac
, die de Java-broncode (".java") compileert naar bytecode-bestanden (".class"). - De hulpmiddelen voor het maken van JAR-bestanden zoals
jar
enjarsigner
- Ontwikkelingstools zoals:
-
appletviewer
voor het uitvoeren van applets -
idlj
de CORBA IDL naar Java-compiler -
javah
de JNI-javah
-
native2ascii
voor tekensetconversie van Java-broncode -
schemagen
de Java to XML-schemagenerator (onderdeel van JAXB) -
serialver
genereert een Java Object Serialization-serialver
. - de
wsgen
enwsimport
ondersteuningstools voor JAX-WS
-
- Diagnostische hulpmiddelen zoals:
-
jdb
de basis Java debugger -
jmap
enjhat
voor het dumpen en analyseren van een Java-heap. -
jstack
voor het krijgen van een thread stack dump. -
javap
voor het onderzoeken van ".class" bestanden.
-
- Applicatiebeheer- en monitoringtools zoals:
-
jconsole
een beheerconsole, -
jstat
,jstatd
,jinfo
enjps
voor applicatiebewaking
-
Een typische Sun / Oracle JDK-installatie bevat ook een ZIP-bestand met de broncode van de Java-bibliotheken. Vóór Java 6 was dit de enige openbaar beschikbare Java-broncode.
Vanaf Java 6 kan de volledige broncode voor OpenJDK worden gedownload van de OpenJDK-site. Het is meestal niet opgenomen in (Linux) JDK-pakketten, maar is beschikbaar als een afzonderlijk pakket.
Wat is het verschil tussen Oracle Hotspot en OpenJDK
Orthogonaal voor de JRE versus JDK-dichotomie, er zijn twee soorten Java-releases die op grote schaal beschikbaar zijn:
- De releases van Oracle Hotspot zijn degenen die u downloadt van de Oracle-downloadsites.
- De OpenJDK-releases zijn degenen die zijn gebouwd (meestal door externe providers) vanuit de OpenJDK-bronrepository's.
Functioneel gezien is er weinig verschil tussen een Hotspot-release en een OpenJDK-release. Er zijn enkele extra "enterprise" -functies in Hotspot die Oracle (betalende) Java-klanten kunnen inschakelen, maar afgezien daarvan zijn dezelfde technologie aanwezig in zowel Hotspot als OpenJDK.
Een ander voordeel van Hotspot ten opzichte van OpenJDK is dat patch-releases voor Hotspot meestal eerder beschikbaar zijn. Dit hangt ook af van hoe behendig uw OpenJDK-provider is; bijv. hoe lang het duurt om een buildteam van een Linux-distributie te maken en een nieuwe OpenJDK-build voor te bereiden en in te voeren in hun openbare repositories.
De keerzijde is dat de Hotspot-releases niet beschikbaar zijn vanuit de pakketrepository's voor de meeste Linux-distributies. Dit betekent dat het up-to-date houden van uw Java-software op een Linux-machine meestal meer werk is als u Hotspot gebruikt.
Verschillen tussen Java EE, Java SE, Java ME en JavaFX
Java-technologie is zowel een programmeertaal als een platform. De programmeertaal Java is een objectgeoriënteerde taal op hoog niveau met een bepaalde syntaxis en stijl. Een Java-platform is een bepaalde omgeving waarin toepassingen voor programmeertaal Java worden uitgevoerd.
Er zijn verschillende Java-platforms. Veel ontwikkelaars, zelfs oude ontwikkelaars van programmeertaal Java, begrijpen niet hoe de verschillende platforms zich tot elkaar verhouden.
De Java-programmeertaalplatforms
Er zijn vier platforms van de programmeertaal Java:
Java Platform, Standard Edition (Java SE)
Java Platform, Enterprise Edition (Java EE)
Java Platform, Micro Edition (Java ME)
Java FX
Alle Java-platforms bestaan uit een Java Virtual Machine (VM) en een Application Programming Interface (API). De Java Virtual Machine is een programma voor een bepaald hardware- en softwareplatform dat Java-technologietoepassingen uitvoert. Een API is een verzameling softwarecomponenten die u kunt gebruiken om andere softwarecomponenten of applicaties te maken. Elk Java-platform biedt een virtuele machine en een API. Hierdoor kunnen applicaties die voor dat platform zijn geschreven, op elk compatibel systeem worden uitgevoerd met alle voordelen van de Java-programmeertaal: platformonafhankelijkheid, kracht, stabiliteit, gemak van ontwikkeling en veiligheid.
Java SE
Wanneer de meeste mensen aan de programmeertaal Java denken, denken ze aan de Java SE API. Java SE's API biedt de kernfunctionaliteit van de Java-programmeertaal. Het definieert alles van de basistypen en objecten van de Java-programmeertaal tot klassen op hoog niveau die worden gebruikt voor netwerken, beveiliging, databasetoegang, grafische gebruikersinterface (GUI) ontwikkeling en XML-parsing.
Naast de kern-API bestaat het Java SE-platform uit een virtuele machine, ontwikkeltools, implementatietechnologieën en andere klassenbibliotheken en toolkits die veel worden gebruikt in Java-technologietoepassingen.
Java EE
Het Java EE-platform is bovenop het Java SE-platform gebouwd. Het Java EE-platform biedt een API- en runtime-omgeving voor het ontwikkelen en uitvoeren van grootschalige, multi-tiered, schaalbare, betrouwbare en veilige netwerktoepassingen.
Java ME
Het Java ME-platform biedt een API en een virtuele machine met een kleine voetafdruk voor het uitvoeren van Java-programmeertaaltoepassingen op kleine apparaten, zoals mobiele telefoons. De API is een subset van de Java SE API, samen met speciale klassenbibliotheken die nuttig zijn voor de ontwikkeling van kleine apparaattoepassingen. Java ME-applicaties zijn vaak clients van Java EE-platformservices.
Java FX
Java FX-technologie is een platform voor het maken van rijke internettoepassingen geschreven in Java FX ScriptTM. Java FX Script is een statisch getypte declaratieve taal die is gecompileerd met Java-technologie bytecode, die vervolgens op een Java VM kan worden uitgevoerd. Toepassingen die zijn geschreven voor het Java FX-platform kunnen Java-programmeertaalklassen bevatten en er een koppeling mee maken, en kunnen clients zijn van Java EE-platformservices.
- Ontleend aan de Oracle-documentatie
Java SE-versies
Java SE-versiegeschiedenis
De volgende tabel biedt de tijdlijn voor de belangrijke hoofdversies van het Java SE-platform.
Java SE versie 1 | Codenaam | Einde levensduur (gratis 2 ) | Publicatiedatum |
---|---|---|---|
Java SE 9 (Early Access) | Geen | toekomst | 2017-07-27 (geschat) |
Java SE 8 | Geen | toekomst | 2014/03/18 |
Java SE 7 | Dolfijn | 2015/04/14 | 2011-07-28 |
Java SE 6 | Mustang | 2013/04/16 | 2006-12-23 |
Java SE 5 | Tijger | 2009-11-04 | 2004-10-04 |
Java SE 1.4.2 | bidsprinkhaan | voorafgaand aan 2009-11-04 | 2003/06/26 |
Java SE 1.4.1 | Hopper / sprinkhaan | voorafgaand aan 2009-11-04 | 2002/09/16 |
Java SE 1.4 | Merlin | voorafgaand aan 2009-11-04 | 2002/02/06 |
Java SE 1.3.1 | Lieveheersbeestje | voorafgaand aan 2009-11-04 | 2001/05/17 |
Java SE 1.3 | Torenvalk | voorafgaand aan 2009-11-04 | 2000/05/08 |
Java SE 1.2 | Speelplaats | voorafgaand aan 2009-11-04 | 1998/12/08 |
Java SE 1.1 | Sterretje | voorafgaand aan 2009-11-04 | 1997/02/19 |
Java SE 1.0 | Eik | voorafgaand aan 2009-11-04 | 1996/01/21 |
voetnoten:
De links zijn naar online kopieën van de respectieve releasedocumentatie op de website van Oracle. De documentatie voor veel oudere releases is niet langer online, hoewel deze meestal kan worden gedownload vanuit de Oracle Java Archives.
De meeste historische versies van Java SE zijn hun officiële "einde levensduur" -datum gepasseerd. Wanneer een Java-versie deze mijlpaal haalt, stopt Oracle met het aanbieden van gratis updates daarvoor. Updates zijn nog steeds beschikbaar voor klanten met ondersteuningscontracten.
Bron:
- JDK-releasedata door Roedy Green van Canadian Mind Products
Hoogtepunten van Java SE-versie
Java SE-versie | highlights |
---|---|
Java SE 8 | Lambda-expressies en op MapReduce geïnspireerde streams. De Nashorn Javascript-engine. Annotaties op typen en herhalende annotaties. Niet-ondertekende rekenkundige uitbreidingen. Nieuwe datum- en tijd-API's. Statisch gekoppelde JNI-bibliotheken. JavaFX-opstartprogramma. Verwijdering van PermGen. |
Java SE 7 | String-schakelaars, try-with-resource , de diamant ( <> ), numerieke verbeteringen en verbeteringen in het omgaan met uitzonderingen. Verbeteringen voor gelijktijdigheidsbibliotheek. Verbeterde ondersteuning voor native bestandssystemen. Timsort. ECC crypto-algoritmen. Verbeterde 2D grafische ondersteuning (GPU). Inplugbare annotaties. |
Java SE 6 | Aanzienlijke prestatieverbeteringen op JVM-platform en Swing. Scripttaal API en Javilla Rhino-engine van Mozilla. JDBC 4.0. Compiler API. JAXB 2.0. Ondersteuning voor webservices (JAX-WS) |
Java SE 5 | Generiek, annotaties, automatisch boksen, enum klassen, varargs, verbeterd for lussen en statische invoer. Specificatie van het Java-geheugenmodel. Swing- en RMI-verbeteringen. Toevoeging van java.util.concurrent.* Pakket en Scanner . |
Java SE 1.4 | Het sleutelwoord assert . Reguliere expressie klassen. Uitzondering chaining. NIO API's - niet-blokkerende I / O, Buffer en Channel . java.util.logging.* API. Afbeelding I / O API. Geïntegreerde XML en XSLT (JAXP). Geïntegreerde beveiliging en cryptografie (JCE, JSSE, JAAS). Geïntegreerde Java Web Start. Voorkeuren API. |
Java SE 1.3 | HotSpot JVM inbegrepen. CORBA / RMI-integratie. Java Naming and Directory Interface (JNDI). Debugger framework (JPDA). JavaSound API. Proxy-API. |
Java SE 1.2 | Het strictfp trefwoord. Swing API's. De Java-plug-in (voor webbrowsers). CORBA-interoperabiliteit. Collecties kader. |
Java SE 1.1 | Innerlijke klassen. Reflectie. JDBC. RMI. Unicode / karakter streams. Ondersteuning bij internationalisering. Revisie van AWT-evenementenmodel. JavaBeans. |
Bron:
- Wikipedia: Java-versiegeschiedenis