Sfondo
Questo non è così ovvio da capire come si potrebbe pensare.Quando è Java 6 fine vita? (Nel contesto della scrittura di strumenti per sviluppatori)
Prima di tutto, mentre Oracle has stopped public support of Java 6 as of Feb 2013 ma con il supporto Premier in uscita a dicembre 2013 e il supporto esteso fino a dicembre 2016, c'è un po 'di coda lunga. Inoltre, c'è supporto per il supporto che potrebbe andare avanti per sempre.
La prossima importante vendor di Java, IBM, does not seem to have even posted an end of support for Java 6 (ed è ancora supporti Java 5 fino a settembre 2013!)
In terzo luogo, abbiamo di Apple: con il momento più recente di patch nel giugno 2013 e come "the company does not spell out its support policies in black and white" sembra si pensi a chiunque ... ma se la gestione di Java 5 può essere utilizzata come base, potremmo vedere altri 18 mesi circa ... alla fine del 2014-ish?
Infine abbiamo OpenJDK ... che Red Hat have said they will now be supporting ...
E non sto nemmeno Come iniziare a considerare i other JVM implementations solo quelle più comuni osservati in natura!
Quindi, da quello che posso vedere, finora, fino a quando si hanno i soldi per pagare Oracle/IBM/Red Hat è possibile continuare a ottenere una versione di Java 6 che è supportato a tempo indeterminato ...
Forse possiamo cominciare a inquadrare questa domanda un po 'meglio, e ottenere la possibilità di una risposta non a tempo indeterminato:
Se non è possibile acquistare il sistema hardware/operativo che la specifica JVM funziona su qualsiasi altro, poi quello specifico JVM continua ad essere supportato è un po 'un punto controverso. I contratti di supporto esteso sono per i clienti esistenti, che probabilmente soddisfano i loro bisogni esistenti con i loro sistemi esistenti ... e se non possono cambiare a uno più nuovo
Questo effettivamente ci dà un certo contesto su Apple ... come Apple l'hardware è supportato per 5 anni (7 se in California) quindi l'unico hardware Apple supportato dovrebbe essere basato su hardware x86 poiché lo switch è stato completato da Dec 2006 (being the last PPC based Apple hardware to ship), quindi in realtà non ci si deve preoccupare delle versioni di Apple Java che girano su PPC, come
Analogamente, è possibile escludere eventuali versioni di Java eseguite su versioni precedenti di Windows. Il che significa che arriva Apr 2014 se il programma di installazione di Java non verrà eseguito su Windows 7 o versioni successive, quindi possiamo effettivamente ignorare che la versione di Java è supportata su Windows XP?
Il mio vero interesse è quando gli strumenti di sviluppo possono far avanzare la loro versione Java minima.
Jenkins ha mantenuto il supporto con Java 5 per qualche tempo, ma le modifiche più recenti significano che 1.520+ richiede Java 6 o più recente sul master e sugli slave. Ciò può causare problemi se alcuni degli slave di build, ad es. hardware legacy, non può eseguire JVM più recenti.
Maven ha avuto una lunga storia di che ti permette di sborsare una JVM fino a J2SE 1.3 per l'esecuzione di test di unità, ma come di Surefire 2.15 sarà solo supportare l'esecuzione di unit test su a partire da Java 5.
javac is moving to a 1 and three back politica in termini di
-source
e-target
... quindi dovremo aspettare fino a JDK 10 prima che il supporto del file sorgente di Java 6 venga rilasciato da javac ...con una cadenza di rilascio di 2 anni e Java 8 programmato per il rilascio all'inizio del 2014, ciò implicherebbe JDK9 all'inizio del 2016 e JDK10 all'inizio del 2018 ... ma JDK9 sarebbe disponibile con la manutenzione pubblica per altri 3 anni, il che significa che un po 'di tempo nel 2019 è quando la compatibilità del codice sorgente JDK 6 potrebbe essere abbandonata.
Domanda
C'è una data precisa che può essere utilizzato per stabilire quando toolchain di sviluppo OSS possono rilasciare il supporto per la pre-Java 7 JVM, e ciò che è quella data?
La distinzione OSS è importante in quanto gli sviluppatori OSS in genere non dispongono di finanziamenti per l'acquisto di contratti di supporto di tipo esteso/premium/di supporto e molto probabilmente non hanno accesso all'hardware oscuro/mainframe.
Aggiornamento: By "rilasciare il supporto per la pre-Java 7 JVM" Voglio dire che sarebbe stato sicuro per compilare l'intera toolchain con -target 7
vale a dire che il bytecode richiede Java 7 per l'esecuzione.
Aggiornamento 2: Questo dovrebbe, come incorniciato, essere una domanda rispondente basata sui fatti. La risposta corretta dovrebbe essere sia della forma
risposta chiara, ecco un link per "alcune persone che stanno fornendo aggiornamenti gratuiti per OSS persone su Java 6" e non hanno detto quando si fermeranno ancora.
o
Sì, c'è una data definitiva di AAAA-MM-DD e qui è la prova
Quando terminerà Java 5? :) – JIV
@JIV: quando terminerà Java 1.4 ?! –
Temo che questo finirà per lo più basato sull'opinione pubblica, perché si tratta principalmente di trade-off. Inoltre: stai parlando di * esecuzione * su Java 6 o * manipolando * codice Java 6? È meno di un problema se il tuo strumento ha bisogno di Java 7 per funzionare. * Potrebbe benissimo * essere un problema se produce solo/gestisce/capisce il codice Java 7. –