簡體   English   中英

有關Raspberry PI的任何Java經驗嗎?

[英]Any Java experience on Raspberry PI?

是否可以在Raspberry pi上的例如jboss或glassfish服務器上運行普通的Java應用服務器? 任何限制? 有沒有人有覆盆子pi的Java開發經驗?

至少任何適用於RPi的JVM都會很好。

這絕對是可能的,但是對於具有更多內存的新版本(例如,512 MB版本的Pi),應該可以更好地工作。 2012年12月,Oracle發布了面向ARM的Java SE 8開發人員預覽版 該公告的博客文章包含許多教程的鏈接,這些教程應該讓您從簡單的Java SE或JavaFX開始,具體取決於您的界面應該是多么花哨。

  1. Quickie Guide在Raspberry Pi上運行Java Embedded
  2. Raspberry Pi上的JavaFX - 3個簡單步驟

如果您擔心Raspberry Pi上JavaFX的性能,請查看博客文章“Raspberry PI上的JavaFX” ,其中包含有關JavaFX性能的一些信息,並將其與本機應用程序進行比較。

更新:在Pi上運行帶有Java 8的Tomcat 7之后的測試結果
在我獲得了512mb版本的Pi(MODELL B)之后,我安裝了Java 8和Tomcat 7.0而沒有任何問題。 Tomcat示例正在運行,我能夠毫無問題地使用Tomcat管理器應用程序。

使用64 MB RAM用於顯卡,我仍然有291 MB的可用內存(運行sshd):

pi@raspberrypi ~/ $ free -m
             total       used       free     shared    buffers     cached
Mem:           438        146        291          0         10         74
-/+ buffers/cache:         60        377
Swap:           99          0         99

pmap報告了Tomcat進程總共使用了192 MB。

Raspberry Pi只有185MB可用於整個JVM。 (啟動后,16MB進行視頻處理)。

然后,您需要使用積極和精確的內存選項( -Xmx120M -XX:MaxPermSize=55M -XX:ReservedCodeCacheSize=4M -Djava.awt.headless=true

我已經基於Jetty,Spring 3和Hibernate / JPA創建了一個應用程序。 在部署之后,它適合大約15MB的堆空間和32MB的非堆空間(使用JProfiler內存分析)

每個加載的類都會永久丟失內存,因為PermGen空間不能被垃圾回收。 許多類只加載初始化支持,但會永遠保持加載狀態。 也許可以發現tweeks為每個組件消耗更少的PermGen空間。

你的確可以。 一篇關於在樹莓派上運行JBoss EAP(基本上是JBoss AS 7)的博客文章

我在JRE 1.7下的Raspberry Pi上使用TJWS,它的工作速度非常快,沒有內存問題。

現在,pi上的JVM是可能的,但很難找到Java SE版本。 可能有一個來自Oracle的ARM,但我還沒有嘗試過(我的pi仍在使用它)並且如果內存服務它就在牆后面。

pi的另一個限制是可用的RAM; 像jboss和glassfish這樣的應用程序將需要比pi提供的更多RAM,除非在非常有限的部署中。

我已經使用sqlite數據庫在openjdk上運行tomcat7。 在我的筆記本電腦的四分之一速度處理正常,但打開jsp頁面需要10-15秒。 不知道為什么。

如果您想使用java 11和javafx,我發現使用BellSoft的Liberica JDK肯定是可行的: https ://bell-sw.com/pages/java-11.0.3

我的博客上提供了安裝腳本和演示應用程序: https//webtechie.be/2019/04/16/pijava-overview-java-11-and-javafx-11-on-raspberry-pi

要安裝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

在不編譯的情況下測試和運行Java文件:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM