在Raspberry PI上有任何Java经验吗?

2022-09-01 14:02:25

是否可以在Raspberry pi上运行普通的java应用程序服务器,例如jboss或glassfish服务器?有什么限制吗?有没有人有树莓派的Java开发经验?

至少任何适合 RPi 的 JVM 都会很好。


答案 1

这是绝对可能的,但应该更好地与具有更多内存的较新版本(例如,Pi的512 MB版本)配合使用。2012 年 12 月,Oracle 发布了适用于 ARM 的 Java SE 8 的开发人员预览版。带有公告的博客文章包含许多教程的链接,这些教程应该可以帮助您开始使用普通的Java SE或JavaFX,具体取决于您的接口应该有多漂亮。

  1. Quickie Guide Get Java Embedded on Raspberry Pi
  2. Raspberry Pi 上的 JavaFX – 3 个简单的步骤

如果您担心JavaFX在Raspberry Pi上的性能,请查看博客文章“Raspberry PI上的JavaFX”,其中包含有关JavaFX性能的一些信息,并将其与本机应用程序进行比较。

更新:在Pi上运行带有Java 8的Tomcat 7后的测试结果在我获得Pi的512mb版本(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。


答案 2

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 空间无法进行垃圾回收。加载许多类只是为了支持初始化,但将永远保持加载状态。也许可以发现tweek为每个组件消耗更少的PermGen空间。


推荐