Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    53

    [java] java.lang.UnsupportedClassVersionError

    Salve ragazzi mandando in esecuzione la mia applicazione java ottengo il seguente errore :

    java.lang.UnsupportedClassVersionError: java/rmi/Naming (Unsupported major.minor version 50.0)

    so che è dovuto alla compilazione con diverse jre mi potete spiegare come risolvere la situazione, io adopero netbeast 6.1.

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] java.lang.UnsupportedClassVersionError

    Originariamente inviato da Rosario7
    Salve ragazzi mandando in esecuzione la mia applicazione java ottengo il seguente errore :

    java.lang.UnsupportedClassVersionError: java/rmi/Naming (Unsupported major.minor version 50.0)

    so che è dovuto alla compilazione con diverse jre mi potete spiegare come risolvere la situazione, io adopero netbeast 6.1.
    La questione è semplice: ogni file .class ha al suo interno, nel "header" iniziale, una informazione che indica una versione nel formato major.minor. L'obiettivo di questa versione è facilmente comprensibile: evitare che una versione di JVM mandi in esecuzione un file .class per una versione superiore.

    50.0 corrisponde a Java 6. Vuol dire che stai usando, presumibilmente, almeno un JDK 6. La versione "target" si può impostare, anche più bassa (è una opzione del compilatore javac) ma va scelta in modo opportuno. Nel senso che devi sapere tu che cosa hai usato a livello di funzionalità del linguaggio e classi del framework.

    Se hai usato ad esempio classi come java.awt.Desktop o java.io.Console, allora il target deve essere almeno Java 6, non può essere inferiore (anche perché comunque la tua applicazione non funzionerebbe su JRE di versione inferiore).
    Se non hai usato classi specifiche di Java 6, devi vedere se hai usato funzionalità del linguaggio o classi di Java 5. Esempio: hai usato i "generics", il "for-each" o la classe java.util.Scanner??? Allora il target deve essere almeno Java 5. E così via.

    Ti è chiara la questione? Prima devi sapere che cosa hai usato a livello di funzionalità del linguaggio e classi del framework, quindi stabilisci una versione minima di Java che può eseguire la tua applicazione e poi a quel punto puoi istruire il compilatore javac (se usi un IDE, immagino che abbia la possibilità di modificare queste opzioni) per compilare file .class che abbiano un target minimo per far eseguire la tua applicazione.

    Vedi la documentazione di javac e le sue opzioni -source e -target.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.