Ich versuche, Notepad++ als mein All-in-One-Tool zum Bearbeiten, Ausführen, Kompilieren usw. zu verwenden.
Ich habe JRE installiert, und ich habe meine Pfadvariable auf das .../bin
Verzeichnis gesetzt.
Wenn ich mein "Hello world" in Notepad++ ausführe, erhalte ich diese Meldung:
java.lang.UnsupportedClassVersionError: test_hello_world :
Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
.........................................
Ich denke, dass das Problem hier mit den Versionen zu tun hat; einige Java-Versionen können alt oder zu neu sein.
PATH
-Variable in JRE oder JDK?Die angezeigte Versionsnummer beschreibt die Version der JRE, mit der die Klassendatei kompatibel ist.
Die angegebenen Hauptnummern sind:
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
(Quelle: Wikipedia)
Um das eigentliche Problem zu beheben, sollten Sie versuchen, den Java-Code entweder mit einer neueren Version von Java JRE auszuführen oder dem Java-Compiler den Parameter target anzugeben, um ihn anzuweisen, Code zu erstellen, der mit früheren Java-Versionen kompatibel ist.
Um z.B. Klassendateien zu erzeugen, die mit Java 1.4 kompatibel sind, verwenden Sie die folgende Befehlszeile:
javac -target 1.4 HelloWorld.java
Bei neueren Versionen des Java-Compilers kann es vorkommen, dass Sie eine Warnung erhalten, dass der Bootstrap-Klassenpfad nicht gesetzt ist. Weitere Informationen zu diesem Fehler finden Sie in einem Blogbeitrag Neue javac-Warnung für das Setzen einer älteren Quelle ohne Bootclasspath.
Der Fehler "java.lang.UnsupportedClassVersionError" tritt aufgrund eines höheren JDK während der Kompilierung und eines niedrigeren JDK während der Laufzeit auf.
Keine Sorge, ich habe das Problem gelöst.
Es ist eigentlich einfach - Sie müssen BEIDE JRE / JDK mit der gleichen Version zu installieren.
JRE 6 -> JDK 6
JRE 7 -> JDK 7
Und so weiter.