繁体   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