2013-07-04 25 views
5

Sto lavorando a un'applicazione Java, in cui è necessario utilizzare un jar denominato myBeans.jar.Come posso utilizzare una libreria compilata per Java 7 in Java 6?

Questo myBeans.jar contiene molti file di classe, che sono compilati con jdk 1.7. Non ho il codice sorgente per quei file di classe.

E tutta la mia applicazione utilizza jdk 1.6. Non riesco a modificare il compilatore su jdk 1.7. Quindi voglio che il mio barattolo sia compatibile con la mia app. Ed è per questo che voglio che le classi del jar siano compilate con jdk 1.6. ci sia un modo per compilare i file di classe (& file non java) usando JDK 1.6:

Ora la mia domanda è?

Eventuali suggerimenti alternativi sono anche benvenuti.

Qualcuno mi ha consigliato di ottenere il codice sorgente dai file di classe usando il decompilatore & quindi compilare il codice sorgente con jdk 1.6. Ma preferirei questa soluzione all'ultimo dato che ci sono molti file di classe.

+1

Avete controllato se esiste una versione precedente di 'MyBeans.jar' che è stata compilata con java 6? Se è una libreria scaricata, potrebbe avere un archivio. –

+3

+ 1, ma non è possibile suppongo http://stackoverflow.com/questions/6699347/jdk-7-class-file-backward-compatibility-with-jdk-6 –

+0

@DanielLerps Sì, ho controllato ma non lo sono in grado di trovare il vaso più vecchio. – RAS

risposta

3

Questo probabilmente non funzionerà. Java 7 ha introdotto funzionalità linguistiche non presenti nelle versioni precedenti, quindi se qualcuno di questi è stato usato nella libreria potresti non essere in grado di ricompilare utilizzando JDK 6.

Inoltre, vengono introdotti nuovi metodi e classi con ogni revisione Java quindi se nella libreria sono presenti oggetti @since 1.7, questi non saranno presenti nell'ambiente Java 6 e la generazione avrà esito negativo.

+0

Qualche strumento o plugin online o qualcosa del genere ..? – RAS

+0

@RAS Non conosco un approccio da prendere diverso dal manuale decompilare/ricompilare suggerito dal tuo conoscente. –

+0

Desidero che il mio barattolo sia compatibile con la mia app. L'app è compilata usando jdk 1.7 e jar è compilato usando jdk 1.6. Non riesco a cambiare la compilation delle app per essere jdk 1.7. – RAS