Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    nuove funzionalità e compatibilità

    quando vengono aggiunte nuove funzionalità con una determinata versione di java, è necessaria una JRE aggiornata per eseguire il codice già compilato o no? dipende da quello che viene introdotto?
    non avendo mai scritto software da distribuire non mi sono mai preoccupato dell aspetto compatibilità, quindi sono molto ignorante a riguardo... grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Sei tu ad imporre limiti scegliendo le varie librerie che usi quando non hai dall'altra parte (chi usa il tuo programma) limiti.
    Quando entra in gioco la controparte (in genere il cliente) che fissa requisiti minimi da rispettare (ad esempio sistemi di produzione con una determinata vm), devi attenerti a quelli.

    Ovviamente una roba compatibile java 1.4 lo sarà anche java 7, anche se utilizzando le features delle versioni successive avresti scritto codice migliore/più pulito.
    Il viceversa in generale non è vero (a meno di non rispettare le API della versione precedente)
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    Sei tu ad imporre limiti scegliendo le varie librerie che usi quando non hai dall'altra parte (chi usa il tuo programma) limiti.
    Quando entra in gioco la controparte (in genere il cliente) che fissa requisiti minimi da rispettare (ad esempio sistemi di produzione con una determinata vm), devi attenerti a quelli.

    Ovviamente una roba compatibile java 1.4 lo sarà anche java 7, anche se utilizzando le features delle versioni successive avresti scritto codice migliore/più pulito.
    Il viceversa in generale non è vero (a meno di non rispettare le API della versione precedente)
    Capisco grazie, e per quanto riguarda non le librerie ma le istruzioni? Riguardano solo la fase di compilazione o viene generato un bytecode non interpretabile da una JRE non aggiornata?
    Per esempio, se uso il cosiddetto "diamond" dei generici o il costrutto try-with-resources (introdotti con Java 7), dopo aver correttamente compilato il codice prodotto è eseguibile anche da JRE non aggiornate?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    il miglior modo per saperlo e convincertene è fare quanto segue:

    1. compila con java 7 un programma che faccia esplicito uso di una feature di java 7 (quella che hai nominato va bene)
    2. esegui lo stesso programma con java 6 e vedi che ottieni.

    non ti dico compila con java 6 perché non compila nemmeno
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    il miglior modo per saperlo e convincertene è fare quanto segue:

    1. compila con java 7 un programma che faccia esplicito uso di una feature di java 7 (quella che hai nominato va bene)
    2. esegui lo stesso programma con java 6 e vedi che ottieni.

    non ti dico compila con java 6 perché non compila nemmeno
    Si infatti avevo pensato di farlo appena avevo un attimo di tempo, grazie, scriverò qui il risultato.

    P.S.: quotone per la firma!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Giusto per la cronaca, riuppo il topic per dire che ho provato, e qualsiasi cosa compilo con Java 7 (anche una classe con un main vuoto) non lo riesco ad eseguire con la precedente JRE di Java 6, ricevo un errore di tipo UnsupportedClassVersionError.
    Quindi il problema che ho supposto nei post precedenti nemmeno si pone... oppure ho sbagliato io qualcosa a compilare/eseguire?

    Niente di particolarmente importante, è solo una curiosità.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    sei arrivato a quello che io già sapevo e che ricordo perché ci ho sbattuto il muso contro diverse volte.
    Alla fine il modo migliore per imparare e ricordare le cose è appunto provarle (ma questo vale in generale). Il punto è che se compili con una versione del jdk che ha cose in meno rispetto all'attuale problemi non ce ne sono perché alla fine è come se usassi nel vecchio modo quello che hai, ma il contrario è falso. Il compilatore della versione 7 ammette ad esempio lo switch per le stringhe, come si comporta una jre 6 a quel punto?

    Poi resto sempre dell'idea che quando hai di questi problemi, portati dietro l'environment (è pesante lo so), ma eviti di dover gestire tutte queste paraonie.
    In ogni caso specifica bene la versione di jdk minima compatibile con il tuo programma e in generale io mi fermerei almeno java 6 compliant (java 5 esagero)
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    sei arrivato a quello che io già sapevo e che ricordo perché ci ho sbattuto il muso contro diverse volte.
    Alla fine il modo migliore per imparare e ricordare le cose è appunto provarle (ma questo vale in generale). Il punto è che se compili con una versione del jdk che ha cose in meno rispetto all'attuale problemi non ce ne sono perché alla fine è come se usassi nel vecchio modo quello che hai, ma il contrario è falso. Il compilatore della versione 7 ammette ad esempio lo switch per le stringhe, come si comporta una jre 6 a quel punto?

    Poi resto sempre dell'idea che quando hai di questi problemi, portati dietro l'environment (è pesante lo so), ma eviti di dover gestire tutte queste paraonie.
    In ogni caso specifica bene la versione di jdk minima compatibile con il tuo programma e in generale io mi fermerei almeno java 6 compliant (java 5 esagero)
    Già, grazie dei consigli.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.