wake-up-neo.com

Java-Erfahrung auf Raspberry PI?

Ist es möglich, einen durchschnittlichen Java-App-Server auf z. JBoss oder Glassfish Server auf Raspberry Pi? Irgendwelche Einschränkungen? Hat jemand eine Erfahrung in der Java-Entwicklung für Himbeer-Pi?

Zumindest jede geeignete JVM für RPi wird Nizza sein.

27
johnny-b-goode

Dies ist absolut möglich, sollte jedoch mit neueren Versionen mit mehr Arbeitsspeicher (z. B. der 512 MB-Version des Pi) besser funktionieren. Im Dezember 2012 veröffentlichte Oracle eine Developer Preview von Java SE 8 für ARM . Der Blogeintrag mit der Ankündigung enthält Links zu einer Reihe von Tutorials, die Sie mit dem einfachen Einsatz von Java SE oder JavaFX beginnen sollten, je nachdem, wie gut Ihre Schnittstellen sein sollen.

  1. Quickie-Anleitung Java Embedded auf Raspberry Pi ausführen
  2. JavaFX auf Raspberry Pi - 3 einfache Schritte

Wenn Sie sich Sorgen über die Leistung von JavaFX auf dem Raspberry Pi machen, lesen Sie den Blogbeitrag "JavaFX auf Raspberry Pi" , der Informationen zur Leistung von JavaFX enthält und mit nativen Anwendungen vergleicht.

Update: Testergebnisse nach dem Ausführen von Tomcat 7 mit Java 8 auf dem Pi
Nachdem ich die 512 MB-Version des Pi (MODELL B) erworben hatte, installierte ich Java 8 und Tomcat 7.0 ohne Probleme. Tomcat-Beispiele funktionierten und ich konnte die Tomcat-Manageranwendung ohne Probleme verwenden.

Mit 64 MB RAM, die für die Grafikkarte verwendet wurden, verfügte ich noch über 291 MB freien Speicher (mit sshd).

[email protected] ~/ $ free -m
             total       used       free     shared    buffers     cached
Mem:           438        146        291          0         10         74
-/+ buffers/cache:         60        377
Swap:           99          0         99

pmap meldete, dass insgesamt 192 MB vom Tomcat-Prozess verwendet wurden.

27
raju-bitter

Raspberry Pi hat nur 185 MB für die gesamte JVM zur Verfügung. (nach dem Booten mit 16 MB Videoverarbeitung).

Dann müssen Sie aggressive und präzise Speicheroptionen (-Xmx120M -XX:MaxPermSize=55M -XX:ReservedCodeCacheSize=4M -Djava.awt.headless=true) verwenden.

Ich habe einen Antrag auf Basis von Jetty, Spring 3 und Hibernate/JPA erstellt. Direkt nach der Bereitstellung passt es in etwa 15 MB Heap-Speicherplatz und 32 MB Nicht-Heap-Speicherplatz (mithilfe der JProfiler-Speicheranalyse).

Für jede geladene Klasse geht permanenter Speicher verloren, da PermGen-Speicherplatz nicht gesammelt werden kann. Viele Klassen werden nur für die Initialisierungsunterstützung geladen, bleiben aber für immer geladen. Möglicherweise kann gefunden werden, dass Tweewes weniger PermGen-Speicherplatz für jede Komponente verbrauchen.

12
Toilal

Das kannst du ja. Es gibt einen blog post von jemandem, der JBoss EAP (im Wesentlichen JBoss AS 7) auf einem Raspberry Pi ausführt.

8

Ich verwende TJWS auf Raspberry Pi unter JRE 1.7, es arbeitet unglaublich schnell und ohne Speicherprobleme. 

4
Dmitriy R

Im Moment ist eine JVM auf der Pi möglich aber eine Java SE Edition ist schwer zu finden. Es gibt vielleicht eine für ARM von Oracle, aber ich habe es nicht ausprobiert (mein Pi ist immer noch auf dem Weg) und wenn der Speicher dient, ist er hinter einer Mauer.

Eine weitere Einschränkung für das Pi ist der verfügbare RAM. Apps wie JBoss und Glassfish wollen mehr RAM als das Pi bietet, außer bei sehr eingeschränkten Implementierungen. 

2
Joseph Ottinger

Arun Gupta hat ein paar Beiträge darüber geschrieben, wie man JBoss Wildfly auf Raspberry Pi laufen lässt.

1

Ich habe Tomcat 7 auf openjdk mit SQLite-Datenbanken ausgeführt. Die Verarbeitung ist bei ungefähr einem Viertel der Geschwindigkeit meines Laptops in Ordnung, aber das Öffnen von JSP-Seiten dauert 10-15 Sekunden. Ich weiß noch nicht warum.

0
Andrew p

falls Sie Java 11 und javafx verwenden möchten, habe ich festgestellt, dass dies mit dem Liberica JDK von BellSoft definitiv möglich ist: https://bell-sw.com/pages/Java- 11.0.

Installationsskripte und Demoanwendung sind auf meinem Blog verfügbar: https://webtechie.be/2019/04/16/pijava-overview-Java-11-and-javafx-11-on-raspberry-pi =

So installieren Sie JDK 11.0.2:

# Make sure we are in the home directory
cd /home/pi

# Download the Java 11.0.2 distribution from BellSoft
wget https://download.bell-sw.com/Java/11.0.2/bellsoft-jdk11.0.2-linux-arm32-vfp-hflt.tar.gz

# Move the downloaded file to /opt
Sudo mv bellsoft-jdk11.0.2-linux-arm32-vfp-hflt.tar.gz /opt

# Use the /opt directory
cd /opt

# Untar the downloaded file
Sudo tar -xvzf bellsoft-jdk11.0.2-linux-arm32-vfp-hflt.tar.gz

# Remove the downloaded file
Sudo rm bellsoft-jdk11.0.2-linux-arm32-vfp-hflt.tar.gz

Testen und Ausführen von Java Datei ohne Kompilierung:

cd /home/pi
nano HelloWorld.Java

public class HelloWorld {
    public static void main (String[] args) {
        System.out.println("Hello World");
    }
}

/opt/jdk-11/bin/Java /home/pi/HelloWorld.Java
Hello World
0
Frank