Buongiorno,
sto muovendo i primi passi nella programmazione con java e incontro già il primo rompicapo
Nel mio sistema Windows ho installato Java 8, che credo sia la versione più recente scaricabile gratis, che mi fornisce il jre e mi crea la cartella "oracle\java\javapath".
Il jdk che invece ho scaricato è l'ultima versione, la 14.
Sto seguendo il libro di Claudio De Sio, consigliatomi da voi per iniziare a programmare e tratta di Java 5. Il primo approccio viene dato attraverso la creazione di un file con blocco note salvato in java, compilato dal cmd con javac nomefile.java e successivamente viene eseguito il bytecode generato con java nomefile.
Come da guida ho impostato il path verso "java\jdk-14.0.1\bin" ma quando vado ad eseguire non trova il percorso per l'eseguibile di java.
Dal PATH quindi ho settato anche "oracle\java\javapath" e adesso come errore nel cmd mi da il seguente:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
E' possibile lavorare con una versione del jdk più recente, ovvero la 14, su un'installazione di java più vecchia ovvero la 8? Oppure le versioni più recenti sono a pagamento ed essendo quella gratuita la 8 nel mio caso dovrei scaricare il jdk per la 8 update 251?
Infine una curiosità, se avessi usato un IDE, in cui la compilazione e l'esecuzione avviene in maniera "più automatica", avrei lo stesso problema?
Grazie,
Simone
P.S: il codice sorgente che sto provando a compilare ed eseguire, è un helloworld di prova trovato su internet (in caso può essere utile, ma credo il problema sia al di fuori del codice perchè è compilato correttamente il file nomefile.class viene generato)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}