Domanda

Ho un progetto che utilizza generici e alcuni bit e pezzi Java 1.5/6. È possibile compilare questo codice per lavorare su un sistema con un 1,4 JRE?

Uso uno script di build formica e un compito Javac per compilare la libreria. Questo si basa bene mentre l'attributo target è 1,5.

Se cambio l'obiettivo in 1.4 ottengo il seguente errore:

generics are not supported in -source 1.4 
(use -source 5 or higher to enable generics)

Quindi aggiungo un attributo di origine e provo un valore di 5 e 1,5. Nuovo errore:

javac: source release 5 requires target release 1.5

Dovrò passare attraverso tutto il mio codice e cambiare le cose 1.5 per far funzionare questo?

È stato utile?

Soluzione

Non ho usato nessuna di queste soluzioni, ma c'è

  1. Retroweaver
  2. specificando il non supportato -target jsr14 Maggio opera
  3. Retrotranslator
  4. Declawer
  5. JBossretro

Potresti anche trovare javac -XD-printflat utile (anche se non fate attenzione a non sovrascrivere la tua fonte originale).

Altri suggerimenti

Ho un progetto che utilizza generici e alcuni bit e pezzi Java 1.5/6. È possibile compilare questo codice per lavorare su un sistema con un 1,4 JRE?

No.

Dovrò passare attraverso tutto il mio codice e cambiare le cose 1.5 per far funzionare questo?

Sì. Ma c'è un modo per automatizzarlo, usando uno strumento chiamato Retroweaver. Tuttavia, non c'è garanzia che catturi tutto.

Ho avuto una buona esperienza con il retrotranslator (Retroweaver non ha funzionato bene con ciò di cui avevo bisogno, non riesco a ricordare esattamente cosa).

Ha funzionato molto bene per il mio scopo (creando versioni JDK1.4 di Logback).

http://retrotranslator.sourceforge.net/

I generici sono implementati per cancellazione del tipo in modo che dovrebbero funzionare prima che vengano introdotti i generici. Tuttavia non saresti in grado di compilare il codice con una versione precedente del compilatore (non so perché vorresti farlo)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top