Sök…


Skillnader mellan Java SE JRE eller Java SE JDK distributioner

Sun / Oracle-versioner av Java SE finns i två former: JRE och JDK. Enkelt uttryck stöder JRE: er kör Java-applikationer, och JDK: er stöder också Java-utveckling.

Java Runtime miljö

Java Runtime Environment eller JRE-distributioner består av uppsättningen bibliotek och verktyg som behövs för att köra och hantera Java-applikationer. Verktygen i en typisk modern JRE inkluderar:

  • java kommandot för att köra ett Java-program i en JVM (Java Virtual Machine)
  • jjs kommandot för att köra Nashorn Javascript-motorn.
  • keytool kommandot för att manipulera Java-nyckelbutiker.
  • policytool för redigering av säkerhetspolicyer för sandlådor.
  • pack200 och unpack200 verktygen för att packa och packa upp "pack200" -filen för webbdistribution.
  • orbd , rmid , rmiregistry och tnameserv som stöder Java CORBA och RMI-applikationer.

"Desktop JRE" -installatörer innehåller ett Java-plugin som är lämpligt för någon webbläsare. Detta lämnas medvetet från "Server JRE" installers.linux syscall läst benchmarku

Från Java 7-uppdatering 6 och framåt har JRE-installatörer inkluderat JavaFX (version 2.2 eller senare).

Java-utvecklingssats

En Java Development Kit eller JDK-distribution inkluderar JRE-verktygen och ytterligare verktyg för att utveckla Java-programvara. De extra verktygen inkluderar vanligtvis:

  • javac kommandot, som kompilerar Java-källkod (".java") till bytekodfiler (".class").
  • Verktygen för att skapa JAR-filer som jar och jarsigner
  • Utvecklingsverktyg som:
    • appletviewer för att köra applets
    • idlj CORBA IDL till Java-kompilatorn
    • javah JNI-stubgeneratorn
    • native2ascii för teckenuppsättning av Java-källkod
    • schemagen Java till XML schemagenerator (del av JAXB)
    • serialver generera Java Object Serialization-versionsträng.
    • wsgen och wsimport för JAX-WS
  • Diagnosverktyg som:
    • jdb den grundläggande Java-felsökaren
    • jmap och jhat för dumpning och analys av en Java-hög.
    • jstack för att få en trådstapdump.
    • javap för att undersöka ".klass" -filer.
  • Programhanterings- och övervakningsverktyg som:
    • jconsole en managementkonsol,
    • jstat , jstatd , jinfo och jps för applikationsövervakning

En typisk Sun / Oracle JDK-installation inkluderar också en ZIP-fil med källkoden för Java-biblioteken. Innan Java 6 var detta den enda offentligt tillgängliga Java-källkoden.

Från Java 6 och framåt är den fullständiga källkoden för OpenJDK tillgänglig för nedladdning från OpenJDK-webbplatsen. Det ingår normalt inte i (Linux) JDK-paket, men är tillgängligt som ett separat paket.

Vad är skillnaden mellan Oracle Hotspot och OpenJDK

Ortogonalt till JRE kontra JDK-dikotomi, det finns två typer av Java-frisläppanden som är allmänt tillgängliga:

  • Oracle Hotspot-utgåvorna är de som du laddar ner från Oracle-nedladdningssidorna.
  • OpenJDK-utgåvorna är de som byggs (vanligtvis av tredjepartsleverantörer) från OpenJDK-källförvaret.

I funktionella termer är det liten skillnad mellan en Hotspot-release och en OpenJDK-version. Det finns några extra "enterprise" -funktioner i Hotspot som Oracle (betalande) Java-kunder kan aktivera, men bortsett från att samma teknik finns i både Hotspot och OpenJDK.

En annan fördel med Hotspot jämfört med OpenJDK är att patchreleaser för Hotspot tenderar att vara tillgängliga lite tidigare. Detta beror också på hur smidig din OpenJDK-leverantör är; t.ex. hur lång tid det tar en Linuxdistributions byggteam att förbereda och QA en ny OpenJDK-byggnad och få den till sina offentliga förvar.

Flipsiden är att Hotspot-utgåvorna inte är tillgängliga från paketförvaret för de flesta Linux-distributioner. Detta innebär att hålla din Java-programvara uppdaterad på en Linux-maskin vanligtvis är mer arbete om du använder Hotspot.

Skillnader mellan Java EE, Java SE, Java ME och JavaFX

Java-teknik är både ett programmeringsspråk och en plattform. Java-programmeringsspråket är ett objektorienterat språk på hög nivå som har en viss syntax och stil. En Java-plattform är en speciell miljö där applikationer för Java-programmeringsspråk körs.

Det finns flera Java-plattformar. Många utvecklare, även långa utvecklare av Java-programmeringsspråk, förstår inte hur de olika plattformarna förhåller sig till varandra.

Java-programmeringsspråkplattformar

Det finns fyra plattformar för Java-programmeringsspråket:

  • Java-plattform, Standard Edition (Java SE)

  • Java-plattform, Enterprise Edition (Java EE)

  • Java-plattform, Micro Edition (Java ME)

  • Java FX

Alla Java-plattformar består av en Java Virtual Machine (VM) och ett applikationsprogrammeringsgränssnitt (API). Java Virtual Machine är ett program för en viss hårdvaru- och mjukvaruplattform som kör Java-teknikapplikationer. Ett API är en samling av programvarukomponenter som du kan använda för att skapa andra programvarukomponenter eller applikationer. Varje Java-plattform har en virtuell maskin och ett API, och detta gör att applikationer som är skrivna för den plattformen kan köras på alla kompatibla system med alla fördelarna med Java-programmeringsspråket: plattformsoberoende, kraft, stabilitet, enkel utveckling och säkerhet.

Java SE

När de flesta tänker på Java-programmeringsspråket tänker de på Java SE API. Java SE: s API ger kärnfunktionen för programmeringsspråket Java. Det definierar allt från grundtyper och objekt i programmeringsspråket Java till klasser på hög nivå som används för nätverk, säkerhet, databasåtkomst, grafiskt användargränssnitt (GUI) utveckling och XML-parsing.

Förutom kärn-API: et består Java SE-plattformen av en virtuell maskin, utvecklingsverktyg, distributionsteknologier och andra klassbibliotek och verktygssatser som vanligtvis används i Java-teknikapplikationer.

Java EE

Java EE-plattformen är byggd ovanpå Java SE-plattformen. Java EE-plattformen tillhandahåller en API och runtime-miljö för att utveckla och köra storskaliga, flerskiktade, skalbara, pålitliga och säkra nätverksapplikationer.

Java ME

Java ME-plattformen har ett API och en virtuell maskin med små fotavtryck för att köra Java-programmeringsspråkapplikationer på små enheter, som mobiltelefoner. API är en delmängd av Java SE API, tillsammans med speciella klassbibliotek som är användbara för utveckling av små enheter. Java ME-applikationer är ofta klienter för Java EE-plattformstjänster.

Java FX

Java FX-teknik är en plattform för att skapa rika internetapplikationer skrivna i Java FX ScriptTM. Java FX Script är ett statiskt typiskt deklarativt språk som kompileras till Java-teknikbytkod, som sedan kan köras på en Java VM. Program skrivna för Java FX-plattformen kan inkludera och länka till Java-programmeringsspråkklasser och kan vara klienter för Java EE-plattformstjänster.


Java SE-versioner

Java SE-versionshistoria

Följande tabell visar tidslinjen för de betydande större versionerna av Java SE-plattformen.

Java SE version 1 Kodnamn Livslängd (gratis 2 ) Utgivningsdatum
Java SE 9 (Early Access) Ingen framtida 2017-07-27 (uppskattat)
Java SE 8 Ingen framtida 2014/03/18
Java SE 7 Delfin 2015/04/14 2011-07-28
Java SE 6 Mustang 2013/04/16 2006-12-23
Java SE 5 Tiger 2009-11-04 2004-10-04
Java SE 1.4.2 Bönsyrsa före 2009-11-04 2003-06-26
Java SE 1.4.1 Hoppare / gräshoppa före 2009-11-04 2002-09-16
Java SE 1.4 Merlin före 2009-11-04 2002-02-06
Java SE 1.3.1 Nyckelpiga piga~~POS=HEADCOMP före 2009-11-04 2001-05-17
Java SE 1.3 Kestrel före 2009-11-04 2000-05-08
Java SE 1.2 Lekplats före 2009-11-04 1998/12/08
Java SE 1.1 Sparkler före 2009-11-04 1997/02/19
Java SE 1.0 Ek före 2009-11-04 1996/01/21

fotnoter:

  1. Länkarna är till online-kopior av respektive utgivningsdokumentation på Orakles webbplats. Dokumentationen för många äldre utgåvor är inte längre online, även om den vanligtvis kan laddas ner från Oracle Java Archive.

  2. De flesta historiska versioner av Java SE har passerat sina officiella "slutet av liv" -datum. När en Java-version passerar denna milstolpe slutar Oracle att tillhandahålla gratisuppdateringar för den. Uppdateringar är fortfarande tillgängliga för kunder med supportkontrakt.

Källa:

Java SE-versionens höjdpunkter

Java SE-version slingor
Java SE 8 Lambda-uttryck och MapReduce-inspirerade strömmar. Nashorn Javascript-motor. Anteckningar om typer och upprepande kommentarer. Osignerade aritmetiska tillägg. Nya API: er och datum. Statiskt länkade JNI-bibliotek. JavaFX-startare. Borttagning av PermGen.
Java SE 7 Strängomkopplare, försök med resurs , diamant ( <> ), förbättringar av numerisk bokstavsförbättring och förbättringar av hantering / omhöjning av undantag. Förbättringar av samtidighetsbiblioteket. Förbättrad support för ursprungliga filsystem. Timsort. ECC-kryptoalgoritmer. Förbättrat stöd för 2D-grafik (GPU). Pluggbara kommentarer.
Java SE 6 Betydande prestandaförbättringar på JVM-plattformen och Swing. Skriptspråk API och Mozilla Rhino Javascript-motor. JDBC 4.0. Compiler API. JAXB 2.0. Web Services support (JAX-WS)
Java SE 5 Generik, anteckningar, enum , enum , vargar, förbättrad for slingor och statisk import. Specifikation av Java Memory Model. Swing och RMI förbättringar. Tillägg av java.util.concurrent.* -Paket och Scanner .
Java SE 1.4 assert nyckelordet. Regelbundna uttrycksklasser. Undantag kedja. NIO API: er - I / O, Buffer och Channel inte blockeras. java.util.logging.* API. Image I / O API. Integrerad XML och XSLT (JAXP). Integrerad säkerhet och kryptografi (JCE, JSSE, JAAS). Integrerad Java Web Start. Inställningar API.
Java SE 1.3 HotSpot JVM ingår. CORBA / RMI-integration. Java Naming and Directory Interface (JNDI). Debugger framework (JPDA). JavaSound API. Proxy-API.
Java SE 1.2 strictfp nyckelordet. Swing API: er. Java-plugin (för webbläsare). CORBA interoperabilitet. Samlingsram.
Java SE 1.1 Inre klasser. Reflexion. JDBC. RMI. Unicode / teckenströmmar. Internationaliseringsstöd. Översyn av AWT-händelsemodell. Javabeans.

Källa:



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow