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 en unpack200 voor het inpakken en uitpakken van het "pack200" -bestand voor webimplementatie.
  • De opdrachten orbd , rmid , rmiregistry en tnameserv 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 en jarsigner
  • 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 en wsimport ondersteuningstools voor JAX-WS
  • Diagnostische hulpmiddelen zoals:
    • jdb de basis Java debugger
    • jmap en jhat 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 en jps 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.


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:

  1. 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.

  2. 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:

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:



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow