在Raspberry PI上有任何Java经验吗?
是否可以在Raspberry pi上运行普通的java应用程序服务器,例如jboss或glassfish服务器?有什么限制吗?有没有人有树莓派的Java开发经验?
至少任何适合 RPi 的 JVM 都会很好。
是否可以在Raspberry pi上运行普通的java应用程序服务器,例如jboss或glassfish服务器?有什么限制吗?有没有人有树莓派的Java开发经验?
至少任何适合 RPi 的 JVM 都会很好。
这是绝对可能的,但应该更好地与具有更多内存的较新版本(例如,Pi的512 MB版本)配合使用。2012 年 12 月,Oracle 发布了适用于 ARM 的 Java SE 8 的开发人员预览版。带有公告的博客文章包含许多教程的链接,这些教程应该可以帮助您开始使用普通的Java SE或JavaFX,具体取决于您的接口应该有多漂亮。
如果您担心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。
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空间。