RPi 1: Java?

CitroenDsVier

Lt. Commander
Registriert
Dez. 2013
Beiträge
1.896
Hallo zusammen,

ich versuche bisher vergebens, java auf einem Raspberry Pi 1 zum laufen zu bekommen. Ich habe die aktuelle Version von Raspbian installiert, die mit einer aktuellen Java-Version kommt, die aber leider nicht läuft:
Code:
Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP

Kann mir Jemand sagen, wie ich eine mit der alten CPU kompatible java-Version (optimalerweise Java 9 JRE) auf das Teil bekomme?

MfG
 
Das 9er wird nicht mehr unterstützt.
Der RPi 1 läuft auf ARMv6, da ist mit Java 8 Endstation.
Also entweder das 8er installieren oder neuen Pi holen.
 
  • Gefällt mir
Reaktionen: CitroenDsVier und pseudopseudonym
Java 9 ist mit der ARMv6 Architektur nicht mehr kompatibel. Da gibts aktuell auch keine hacks bislang (kein Interresse seitens der Community).. Das Problem betrifft nicht nur Java, auch nodejs hat den Support eingestellt für ARMv6. Der BCM2835 ist quasi tot.
Ergänzung ()

CitroenDsVier schrieb:
Der Pi soll in einem Weihnachtsgeschenk fest verbaut werden. Dann muss wohl Java 8 gehen. Wo bekomme ich das?

https://www.raspberrypi.org/forums/viewtopic.php?t=212040#p1308846

apt-get install openjdk-8-jre-headless openjdk-8-jre

musst evtl die alten sources von oldstable mit einschalten.
 
  • Gefällt mir
Reaktionen: CitroenDsVier
Wie hast du diese Java-Version denn installiert?
 
Torben2911 schrieb:
Gut möglich.
Mach mal folgendes.
Dabei sind zwar ca. 40 Fehler geflogen (ich vermute weil die vorherige Version eine JDK war und in der java-8-JRE zB kein javac gefunden wurde), aber jetzt passts. Danke!
Ergänzung ()

Doch noch nicht fertig... Habe gerade eine Testklasse auf dem Laptop kompiliert, anschließend auf dem RPi ausgeführt, und erhalte folgendes:
Code:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 53.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(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

Dann auf dem Laptop eine JDK8 heruntergeladen, das ist aber dann die aktuelle Version 1.8.232, auf dem RPi läuft aber Version 1.8.212.

Ende Gelände? Ich möchte am Ende ein Projekt aus IntelliJ als JAR packen und auf dem RPi ausführen. Die JAR auf dem RPi bauen o.Ä. ist keine Option.
 
Zuletzt bearbeitet:
Die class file version ändert sich nur mit den großen neuen JDK-Releases.
class file version 53.0 wird von einem JDK 9 compiler erzeugt. Du nutzt auf dem Laptop also JDK 9 zum kompilieren, musst aber JDK 8 nutzen.
 
  • Gefällt mir
Reaktionen: CitroenDsVier
Tatsächlich, ich habe ein Zulu OpenJDK Version 8 heruntergeladen und anscheinend eine version 9 bekommen... Danke, Update folgt.
Ergänzung ()

Die von oracle heruntergeladene Version JDK 1.8.212 liefert mit java -version ebenfalls Java 9 :confused_alt:

Um alle Fehler auszuschließen, habe ich letztendlich auch die Path-Variable auf die neu heruntergeladene JDK geändert. Weiß da Jemand etwas zu, ist 8.212 eine Java 9 ?
 
Zuletzt bearbeitet:
CitroenDsVier schrieb:
ist 8.212 eine Java 9 ?
Nein.

Du hast die PATH-Variable nicht korrekt angepasst, z.B. zeigt ein Pfad weiter vorne in der Variable noch auf Java 9, oder du hast nicht dich in Windows neu angemeldet damit alle Anwendungen den neuen PATH haben.
 
  • Gefällt mir
Reaktionen: Hallo32 und CitroenDsVier
Nevermind, es scheint zu laufen. Habe die Testklasse mit IntelliJ kompiliert, dort ließ sich das JDK richtig einstellen.

Danke @All!
Ergänzung ()

Marco01_809 schrieb:
Du hast die PATH-Variable nicht korrekt angepasst, z.B. zeigt ein Pfad weiter vorne in der Variable noch auf Java 9, oder du hast nicht dich in Windows neu angemeldet damit alle Anwendungen den neuen PATH haben.

Letzteres... Gut zu wissen!
 
Zurück
Oben