Java SE 6 vs. JRE 1.6 vs. JDK 1.6 - Cosa significano?


178

Vedo molti diversi termini Java fluttuare intorno. Devo installare JDK 1.6. Ho capito che Java 6 == Java 1.6. Tuttavia, quando installo Java SE 6, ottengo una JVM che riporta come versione 11.0! Chi può risolvere la follia?


12
C'è anche un bel diagramma concettuale Java (con collegamenti cliccabili) che può aiutare.
informatik01

Risposte:


55

Quando si digita "java -version", vengono visualizzati tre numeri di versione: la versione java (sulla mia, quella " 1.6.0_07"), la versione Java SE Runtime Environment ("build 1.6.0_07-b06") e la versione HotSpot (sulla mia, cioè " build 10.0-b23, mixed mode") Sospetto che "11.0" che stai vedendo sia la versione di HotSpot.

Aggiornamento: HotSpot è (o lo era, ora sembrano usarlo per indicare l'intera VM) il compilatore just-in-time incorporato nella Java Virtual Machine. Dio solo sa perché Sun gli dà un numero di versione separato.


7
Quindi, qual è la differenza tra JVM 1.6 e JVM 11.0? Cos'è l'hotspot?
Joe Schneider,

Grazie, quella era la confusione: due diversi numeri di versione.
Joe Schneider,

1
In realtà HotSpot non è un JIT. JIT implica che la compilazione avviene prima dell'esecuzione. HotSpot utilizza innanzitutto l'interpretazione per eseguire e analizzare il codice prima di compilare / ottimizzare parti selezionate del programma.
John Nilsson,

173
  • JDK - Kit di sviluppo Java
  • JRE - Java Runtime Environment
  • Java SE - Java Standard Edition

SE definisce un insieme di capacità e funzionalità; ci sono edizioni più complesse (Enterprise Edition - EE) e più semplici (Micro Edition - ME - per ambienti mobili).

JDK include il compilatore e altri strumenti necessari per sviluppare applicazioni Java; JRE no. Quindi, per eseguire un'applicazione Java fornita da qualcun altro, è necessario JRE; per sviluppare un'applicazione Java, è necessario JDK.

Modificato : come ha sottolineato Chris Marasti-Georg in un commento, è possibile trovare molte informazioni sul sito Web Sun di Java , e in particolare dalla sezione Java SE , (seconda opzione, Java SE Development Kit (JDK) 6 Aggiornamento 10) .


A cura di 2011-04-06: Il mondo gira e Java ora è gestito da Oracle, che ha acquistato Sun. Entro la fine dell'anno, il sun.comdominio dovrebbe oscurarsi. La nuova pagina (basata su un reindirizzamento) è questa pagina Java su Oracle Tech Network. (Vedi anche java.com .)


Edito 2013-01-11: E il mondo continua a girare (nonostante il 2012-12-21), ed ecco, JRE 6 sta per raggiungere la sua fine del supporto. Oracle afferma che non saranno più disponibili aggiornamenti pubblici su Java 6 dopo febbraio 2013.

All'interno di una determinata versione di Java, questa risposta rimane valida. JDK è il Java Development Kit, JRE è il Java Runtime Environment, Java SE è l'edizione standard e così via. Ma la versione 6 (1.6) sta diventando antiquata.

A cura del 29-04-2015: E con un altro paio di rivoluzioni attorno al sole, è giunto il momento della fine del supporto anche per Java SE 7. Nell'aprile 2015, Oracle ha affermato di non fornire più aggiornamenti pubblici a Java SE 7. La fine provvisoria degli aggiornamenti pubblici per Java SE 8 è marzo 2017, ma tale data di fine è soggetta a modifiche (successivamente, non prima).


1
Quindi, se ho bisogno di JDK 1.6, cosa devo installare? L'installazione di Java SE 6 mi dà una JVM che riporta come versione 11.0!
Joe Schneider,

1
Devi andare su sun e scaricare JDK 1.6 o 6, qualunque cosa abbiano elencato come.
Chris Marasti-Georg,

Credo che ciò che viene fornito con Java SE 6 dovrebbe essere il JDK corretto, nonostante le differenze del numero di versione interno.
Jonathan Leffler,

java.sun.com/javase/downloads/index.jsp 2a opzione, Java SE Development Kit (JDK) 6 Aggiornamento 10
Chris Marasti-Georg

1
@Pacerier: era vero nell'ottobre 2008? Inoltre, il componente principale di JDK è il compilatore Java, non è vero?
Jonathan Leffler,

103

Questo potrebbe aiutare qualcuno:

Sto installando l'ultimo Java sul mio sistema per lo sviluppo, e attualmente è Java SE 7. Ora, tuffiamoci in questa "follia", come la metti ...

Tutti questi sono gli stessi (quando gli sviluppatori parlano di Java per lo sviluppo):

  • Java SE 7
  • Java SE v1.7.0
  • Java SE Development Kit 7

A partire da Java v1.5:

  • v5 = v1.5.
  • v6 = v1.6.
  • v7 = v1.7.

E possiamo presumere che questo rimarrà per le versioni future.

Successivamente, per gli sviluppatori, scaricare JDK, non JRE.

JDK conterrà JRE. Se hai bisogno di JDK e JRE, procurati JDK. Entrambi verranno installati dalla singola installazione JDK, come vedrai di seguito.

Come qualcuno sopra menzionato:

  • JDK = Java Development Kit (gli sviluppatori hanno bisogno di questo, sei tu se scrivi il codice in Java)
  • JRE = Java Runtime Environment (gli utenti hanno bisogno di questo, questo è ogni utente di computer oggi)
  • Java SE = Java Standard Edition

Ecco i link passo passo che ho seguito (un passaggio porta al successivo, tutto per un singolo download) per scaricare Java for development (JDK):

  1. Visita "Download Java SE": http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Fare clic su "Download JDK" e visitare "Download di Java SE Development Kit 7": http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html (notare che seguire il collegamento dal passaggio 1 ti porterà a un collegamento diverso poiché gli aggiornamenti di JDK 1.7, versioni successive, sono ora disponibili)
  3. Accetta l'accordo :)
  4. Fai clic su "Java SE Development Kit 7 (Windows x64)": http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe (per il mio Windows 7 a 64 bit sistema)
  5. Ora stai scaricando (si spera l'ultimo) JDK per il tuo sistema! :)

Tieni presente che i link sopra riportati sono solo a scopo di riferimento, per mostrarti il ​​metodo passo passo di ciò che serve per scaricare JDK.

E installa con le impostazioni predefinite per:

  • "C: \ Programmi \ Java \ jdk1.7.0 \" (JDK)
  • "C: \ Programmi \ Java \ jre7 \" (JRE) <--- perché ha richiesto una nuova cartella di installazione? è JRE!

Ricorda dall'alto che JDK contiene JRE, il che ha senso se sai cosa sono entrambi. Ancora una volta, vedi sopra.

Dopo l'installazione, ricontrolla “C: \ Programmi \ Java” per visualizzare entrambe queste cartelle. Ora sai cosa sono e perché sono lì.

So di averlo scritto per i neofiti, ma mi piace conoscere le cose in dettaglio, quindi spero che questo aiuti.


8
questa risposta deve essere
annullata

Di recente ho dovuto installare un jre per eseguire uno degli altri programmi di installazione e quindi ho dovuto installare una versione a 32 bit per far funzionare uno degli altri programmi di installazione. La versione che sto usando alla fine è Glassfish 4 che sembra non fornire javax.persistence. Si è scoperto che avevo bisogno di Maven, che decomprimere e quindi impostare alcune variabili di ambiente. Che casino!
JonnyRaa,

Mi sembra che Java SE e Java SDK siano lo stesso pacchetto.
Galmok,

20

Una breve e forse errata storia delle versioni di Java

  • Java è una piattaforma. Consiste di due prodotti: il kit di sviluppo software e l'ambiente di runtime.

  • Quando Java fu rilasciato per la prima volta, apparentemente si chiamava Java . Se eri uno sviluppatore, conoscevi anche la versione, che era una normale "1.0" e successivamente una "1.1". Ai due prodotti che facevano parte della piattaforma sono stati assegnati nomi:

    • JDK - "Java Development Kit"
    • JRE - "Java Runtime Environment"
  • Apparentemente le modifiche nella versione 1.2 sono così significative che hanno iniziato a chiamare la piattaforma come Java 2 .

    • La "distribuzione" predefinita della piattaforma è stata data al moniker "standard" per contrastarla con i suoi fratelli. Quindi avevi tre piattaforme:

      • "Java 2 Standard Edition (J2SE)"
      • "Java 2 Enterprise Edition (J2EE)"
      • "Java 2 Mobile Edition (J2ME)"
    • Il JDK è stato ufficialmente rinominato "Java 2 Software Development Kit".

  • Quando uscì la versione 1.5, i semi decisero che dovevano "rinominare" il prodotto. Quindi la piattaforma Java ha ottenuto due versioni: la versione del prodotto "5" e la versione dello sviluppatore "1.5" (Sì, la regola viene esplicitamente menzionata - "elimina" 1. "). Tuttavia, il" 2 "è stato mantenuto nel Quindi, ora la piattaforma è ufficialmente chiamata "Java 2 Platform Standard Edition 5.0 (J2SE 5.0)" .

    • I semi si resero anche conto che la comunità di sviluppo non stava riprendendo il proprio nome dal JDK. Ma invece di annullare la modifica, decidono di eliminare "2" dal nome dei singoli prodotti, che ora diventano "J2SE Development Kit 5.0 (JDK 5.0)" e "J2SE Runtime Environment 5.0 (JRE 5.0)" .
  • Quando uscì la versione 1.6, qualcuno si rese conto che avere due numeri nel nome era strano. Quindi decidono di eliminare completamente il 2 (e il suffisso ".0") e finiamo con "Java Platform, Standard Edition 6 (Java SE 6)" contenente il "Java SE Development Kit 6 (JDK 6)" e "Java SE Runtime Environment 6 (JRE 6)" .

  • La versione 1.7 non ha fatto nulla di stupido. Se dovessi indovinare, il prossimo grande cambiamento sarebbe far cadere la "SE", in modo che il ciclo si completi e il JDK venga chiamato di nuovo "Java Development Kit".

Appunti

  • Per semplicità, un gruppo di segni di marchio sono stati omessi. Supponiamo quindi Java ™, JDK ™ e JRE ™.

  • SO sembra avere problemi nel rendering degli elenchi nidificati.

Riferimenti

Epilogo

Rilascia semplicemente il "1." dalle versioni stampate da javac -versione java -versione sei a posto.


3
Mucca sacra. Pensavo che solo Microsoft avesse i pazzi senzatetto a inventare nomi di prodotti.
Stabledog,

2
È una follia. Non sono mai stato in grado di comprenderli senza doverli cercare esplicitamente ogni volta.
Preet Sangha

4

Con il rilascio di Java 5, la versione del prodotto è stata distinta dalla versione per sviluppatori come descritto qui


3

Java SE Runtime è per l'utente finale, quindi è necessaria la versione Java JRE, la prima versione di Java era la 1, quindi 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 ecc. E di solito ogni versione è denominata dalla versione, quindi JRE 6 significa Java jre 1.6, esiste comunque la versione di aggiornamento, ad esempio 1.6 update 45, che si chiama java jre 6u45.

Da quello che so, hanno preferito usare il numero 6 invece di 1.6 per riflettere meglio il livello di maturità, stabilità, scalabilità, sicurezza e altro

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.