28

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

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

4

8 回答 8

28

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

  1. 快速指南让 Java Embedded 在 Raspberry Pi 上运行
  2. Raspberry Pi 上的 JavaFX – 3 个简单步骤

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

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

于 2012-12-19T17:02:11.910 回答
12

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 空间。

于 2012-08-30T11:37:24.727 回答
8

你确实可以。有人在树莓派上运行 JBoss EAP(本质上是 JBoss AS 7)的博客文章。

于 2012-08-23T16:07:42.593 回答
4

我在 JRE 1.7 下的 Raspberry Pi 上使用 TJWS,它运行得非常快而且没有内存问题。

于 2013-01-13T09:59:37.920 回答
2

目前,pi 上的 JVM 是可能的,但很难找到 Java SE 版本。可能有一个来自 Oracle 的 ARM,但我还没有尝试过(我的 pi 仍在路上),如果记忆有用,它就在一堵墙后面。

pi 的另一个限制是可用的 RAM。像 jboss 和 glassfish 这样的应用程序需要比 pi 提供的更多 RAM,除非在非常受限的部署下。

于 2012-08-23T12:24:47.553 回答
1

Arun Gupta 发表了几篇关于在 Raspberry Pi 上运行 JBoss Wildfly 的文章。

于 2015-05-17T23:57:46.633 回答
0

我已经用 sqlite 数据库在 openjdk 上运行了 tomcat7。以我笔记本电脑的四分之一速度处理可以,但打开 jsp 页面需要 10-15 秒。还不知道为什么。

于 2013-08-19T19:54:08.040 回答
0

如果您想使用 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
于 2019-05-29T07:34:39.970 回答