Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2019
    residenza
    Salerno
    Messaggi
    2

    [Java] Errore di compilazione

    Ciao, ragazzi.
    Volevo esporre qui il mio problema, spero di essere nella sezione giusta.

    Recentemente stavo lavorando ad un progetto in Java.
    Nessun errore, nell'IDE il programma gira bene... Il problema emerge quando vado a compilare il programma.
    Ho JDK e Java SE aggiornati all'ultima versione.

    Ho provato ad eseguire il file compilato ma dà il seguente errore:
    codice:
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: SOA has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    Eppure le versioni non dovrebbero essere le stesse?

    Quindi ho provato a compilarlo a mano col comando
    codice:
    javac -d Compiled --release 8 SOA.java Array.java Vettore.java

    ma nell'eseguirlo restituisce un altro errore
    codice:
    Errore: impossibile trovare o caricare la classe principale SOA.class
    Spero che riusciate a darmi un buon consiglio. Io non so più cosa provare.
    Grazie della disponibilità.

    Zname

  2. #2
    Quote Originariamente inviata da zname Visualizza il messaggio
    Ciao, ragazzi.
    Ho provato ad eseguire il file compilato ma dà il seguente errore:
    codice:
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: SOA has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    Premessa: il class version 56.0 corrisponde a Java 12 mentre 52.0 corrisponde a Java 8.
    Quindi vuol dire che nel IDE evidentemente compili "per Java 12" ma poi in qualche modo hai eseguito con un runtime Java 8.

    Se vuoi che il IDE compili per Java 8, devi configurare l'opzione (nel progetto) che indica di impostare come "target" Java 8.

    Quote Originariamente inviata da zname Visualizza il messaggio
    Quindi ho provato a compilarlo a mano col comando
    codice:
    javac -d Compiled --release 8 SOA.java Array.java Vettore.java
    ma nell'eseguirlo restituisce un altro errore
    codice:
    Errore: impossibile trovare o caricare la classe principale SOA.class
    Questo errore presumibilmente è solo questione del classpath. Hai una variabile di ambiente CLASSPATH? Se sì, cosa contiene?

    Se lanci con:

    java -cp . SOA

    funziona? (-cp imposta il classpath)
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2019
    residenza
    Salerno
    Messaggi
    2
    Ho provato a downgradare l'IDE, ho risolto

    Quindi vuol dire che nel IDE evidentemente compili "per Java 12" ma poi in qualche modo hai eseguito con un runtime Java 8.
    Unica domanda: Java è già alla versione 12? Non potrei eseguire il programma per quella versione?

    Hai una variabile di ambiente CLASSPATH?
    No, è un progetto piuttosto piccolo, non sembra necessario.
    Comunque, eseguendo il comando mi da lo stesso errore
    codice:
    Exception in thread "main" java.lang.UnsupportedClassVersionError: SOA has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    Ultima modifica di zname; 30-07-2019 a 19:00
    ZName - Developer Java per hobby
    Informatico per necessità.

  4. #4
    Quote Originariamente inviata da zname Visualizza il messaggio
    Ho provato a downgradare l'IDE, ho risolto
    Che vuol dire? Hai installato una versione più vecchia? .... non serviva ....

    Quote Originariamente inviata da zname Visualizza il messaggio
    Unica domanda: Java è già alla versione 12?
    Sì ora c'è Java 12. E verso metà Settembre dovrebbe uscire Java 13.

    Quote Originariamente inviata da zname Visualizza il messaggio
    Non potrei eseguire il programma per quella versione?
    Certo ma devi assicurarti di usare un runtime Java 12. Quel UnsupportedClassVersionError di prima fa chiaramente pensare che così non fosse.

    Quote Originariamente inviata da zname Visualizza il messaggio
    No, è un progetto piuttosto piccolo, non sembra necessario.
    Comunque, eseguendo il comando mi da lo stesso errore
    codice:
    Exception in thread "main" java.lang.UnsupportedClassVersionError: SOA has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    Da prompt dei comandi:

    javac -version

    e

    java -version

    Se hai versioni discordanti, hai "casini" sul PATH, trova il javac in un JDK x e trova il java in un JDK/JRE y .
    E' un problema sulla tua macchina, non di Java generale in sé (ovviamente).
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2019
    residenza
    Salerno
    Messaggi
    2
    Ho provato a downgradare l'IDE
    Eh, alla fine ho preferito passare a jdk 8, invece che alla 12.
    Sì ora c'è Java 12. E verso metà Settembre dovrebbe uscire Java 13.
    EDIT: Alla fine l'ho trovata la versione 12, sul sito della Oracle.

    Grazie dell'aiuto.
    ZName - Developer Java per hobby
    Informatico per necessità.

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 © 2019 vBulletin Solutions, Inc. All rights reserved.