在RP上运行Java代码的最佳方法是什么?从Debian / Fedora仓库安装OpenJDK是否可以正常工作?是否应该进行一些调整以提高性能?另外,是否有可用于RP的“轻量级” JVM,其运行速度比OpenJDK的标准JVM更好/更快?如果是这样,如何获取和安装它?

评论

请注意,OpenJDK还没有ARM JIT,这使其运行缓慢。

看来Oracle的ARM JIT不属于OpenJDK。

#1 楼

对于您的问题的“轻量级”部分,您可能需要考虑许多较小的JVM。

例如JamVM最初设计用于RP等小型系统, Cacao(另一个较小的JVM)可作为debian中的软件包提供:

icedtea-7-jre-jamvm
icedtea-7-jre-cacao


尽管它们都使用open-jdk类库AFAIK,但它们的类库非常庞大安装JRE的一部分(明智的磁盘占用空间)。

#2 楼

在Debian上从存储库安装应该可以正常工作:

sudo apt-get clean
sudo apt-get update
sudo apt-get install openjdk-6-jre


Arch仓库中似乎没有Java。请使用Fedora的信息进行编辑,我对该发行版一无所知。

#3 楼

我已经对运行在raspberry pi上运行的各种缩减JVM感兴趣,但是很少有人研究直接将Java编译为机器代码。 http://gcc.gnu.org/java/托管有一个编译器,该编译器可以为您提供来自Java或Java字节码的机器代码。我原本打算使用gcj的项目最终在被搁置之前就被废弃了,但是编译器被认为是非常适合嵌入式系统的,因此它应该适合树莓派。

在该论坛页面的下半部分,有人制作了一个非常漂亮的图表,用于比较各种JVM和gcj的相对性能http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 。请记住,这些基准是在最新的raspbian发行版中包含的性​​能大幅提升之前制定的。

评论


现在,六个月后,您是否有在Raspberry上进行此操作的实际经验?

–特尔比约恩(ThorbjørnRavn Andersen)
2012年12月28日上午11:20

#4 楼

我不知道有什么特殊的轻量级JDK,但是回购中的普通openjdk似乎对我来说可以正常工作。至少没有我发现的。其中包括强大的应用程序,Swing / AWT似乎也可以很好地运行(没有尝试过JavaFX。)另一方面,由于缺少JIT,性能并不能满足要求(请参阅此问题。)

#5 楼

Oracle慷慨地将Java 7 SE的一个版本无头地移植到了Raspberry PI的ARM中。奔腾IV的3 GHz频率。
请参见
http://eclipsejpa.blogspot.ca/2012/10/java-se-7-embedded-on-raspberry-pi.html

http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html

#6 楼

Oracle为ARM发布了Java 8(和Java 7)。使用此页面上的链接获取适用于Raspberry Pi的当前最佳Java版本。

这也应该起作用:

#7 楼

我不知道它如何与JVM一起工作,但是我知道Raspberry Pi上的ARM SoC可以运行Java字节码本身。

我没有Raspberry Pi来测试JRE。所以我推测。

使用:cat /proc/cpuinfo/,看看Java是否可以支持Raspberry Pi。

评论


/ proc / cpuinfo中的此java标志表示CPU支持Jazelle扩展。您可以在Wikipedia上阅读有关此内容的信息。

– Krzysztof Adamski
2012年10月5日,12:27

Jazelle的问题在于所有开源JVM都无法使用它。

–亚历山大·张伯伦
2012年10月6日,9:30