我对在 Raspberry Pi 上运行 Java 程序的各种方法有点困惑。在我看来,有以下几种可能性:
爪哇 6:
- Java SE 6 嵌入式
爪哇 7:
- 开放JDK 7
- Java SE 7 嵌入式
- JDK 7.40(及更高版本)
爪哇 8:
- JDK 8
这给我们带来了以下问题:
- JDK 附带的 JVM 和 Java SE 之间有区别吗?
- 没有 ARM 版本的 OpenJDK 6 或 8?
- 与常规 Java SE 7 VM(包含在 JDK 7 中)相比,Java SE 7 Embedded 有哪些优势?我只能找到以下几点:
- 低内存占用
- 无 AWT/Swing
- Raspberry Pi 的 Java SE 7.40 Oracle 主页仅列出了 ARM v6/v7 Soft Float ABI 和 v7 Hard Float ABI 版本的下载。由于 Raspberry Pi 使用 v6 架构,我猜你必须使用 Soft Float 版本。因此,与同样使用 Soft Float ABI 的 Java SE 7 Embedded VM 相比,速度应该不会有所提高,对吧?
- Java SE 8 没有嵌入式版本吗?
- JDK 8 总是使用硬浮点 ABI 还是还有软浮点 ABI 版本?
总结一下:
- 如果您想使用 Hard Float ABI,请使用 JDK 8 的开发者预览版
- 如果您想要一个内存占用少的稳定 Java 版本,请使用 Java SE 7 Embedded
- 如果您想要一个稳定的 Java 版本并想使用 Swing/Awt,请使用 JDK 7.40(及更高版本)