Java 8 for Raspberry Pi开发者预览版

2012 年 12 月 29 日

Oracle 上周发布了针对ARM 处理器的Java 8 开发者预览版。这个版本可以在 JDK 8 (with JavaFX) for ARM 预览版下载地址获得,它特别针对在 Raspberry Pi 设备上运行 JavaFX 做了剪裁。

尽管这还不是完全优化后的最终用户版本,但是它表现了 Java 8 当前在 Oracle 的商业 ARM 版本的状态。作为开发者预览版,它的许可禁止任何商业化使用,但是期望允许 Raspberry Pi 社区对其做出贡献。然而,Oracle 当前没有计划把它们的 ARM 接口的任何部分开源,所以很让人怀疑的是,为什么开发者会为 Oracle 贡献测试时间和修复补丁。另一方面,这个预览版让开发者可以探索构建运行在 Raspberry Pi 和 Java 上的解决方案的选择。

想要安装这个版本,Raspberry Pi 需要运行 Raspbian Wheezy 的最新版本,它会支持使用 Raspberry Pi 的浮点处理器。在下载并解压到所需的目标目录中后,程序就可以完整运行了。Oracle 鼓励开发者试验运行 JavaFX 应用程序。想要做到这一点,需要将下面的属性作为命令行参数传递进来。

复制代码
-Djavafx.platform=eglfb

这个版本的版本信息如下:

复制代码
pi@raspberrypi ~ $ /opt/jdk1.8.0/bin/java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e)
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode)

正如这里所清晰声明的,包默认是“HotSpot 客户端虚拟机”。强制使其成为“服务器”会导致以下错误:

复制代码
pi@raspberrypi ~ $ /opt/jdk1.8.0/bin/java -server -version
Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP 

开发者预览版中一个值得注意的缺陷是,Java 只能使用 Linux 所检测到的第一个鼠标和键盘。在 Raspberry Pi 论坛中相应的帖子中已经得到Java 架构师Daniel Blaukopf 的确认,这个问题会在下一个版本中修复。

有些人已经对于Java 在Raspberry Pi 上的表现做了评测。一次简单的主要评测显示HotSpot 要比本地代码快,所以我们使用 Linpack Benchmark 做了自己的测试,它特别是针对浮点运算的。显然,它显示出来 Raspberry Pi 的速度和一般的最终用户或者服务器的硬件没有什么可比性。

在 i7 920 上 LinPack Java Benchmark 得到的结果是:

复制代码
Mflop/s: 639.949 Time: 0.13 secs (0.131 sec) Norm Res: 5.68 Precision: 2.220446049250313E-16

而在 Raspberry Pi 上得到的是:

复制代码
Mflop/s: 16.461 Time: 5.09 secs (5.093 sec) Norm Res: 5.68 Precision: 2.220446049250313E-16

为了比较 HotSpot 和本地代码,以下是同样评测的 C 语言版本(像 ELinux Pi Performance Wiki 描述的那样编译)的结果:

复制代码
Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
1 0.81 97.53% 0.00% 2.47% 26687.764

但是 Raspberry Pi 的性能并不是它流行的主要原因。正如 Holly Cummins 在 Devoxx 2012 的简短发言中演示的,她在帽子中运行了一台应用程序服务器,它的目标是在很小型的标准计算及硬件上运行范围广泛的应用程序。对于 Java on Raspberry Pi 非常有用的附件是 Pi4J 项目,它为访问 GPIO 针脚提供了 Java 程序库。

查看英文原文: Java 8 for Raspberry Pi Developer Preview

2012 年 12 月 29 日 03:552604
用户头像

发布了 340 篇内容, 共 110.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

介绍一下自研开源NLP工具库---MYNLP

陈吉米

自然语言处理 中文分词 mynlp nlp

Git数据传输模型及常用命令整理

王坤祥

git git flow

redis数据结构介绍四-第四部分 压缩表

Nick

redis 源码 数据结构 源码分析 算法

JVM最佳学习笔记<四>---虚拟机类加载机制

Loubobooo

Java Agent JVM

技术工作的一二三之价值观方法论

拖地先生

个人成长 方法论

Java 异步编程:从 Future 到 Loom

理帆

Java 并发编程 kotlin Netty

KubeFATE 部署多集群联邦学习平台 FATE

亨利笔记

机器学习 Kubernetes 联邦学习 FATE KUBEFATE

JVM最佳学习笔记---总览

Loubobooo

Java Agent JVM

[JVM] String#intern 面试必会

猴哥一一 cium

JVM java string pool string pool string Java 25 周年

一个前端的 Windows10 开发环境

Gadzan

前端开发 windows Windows Terminal 环境安装 开发工具

JUC整理笔记三之测试工具jcstress

JFound

Java

企业也有中年危机?探讨数字化与永续经营

fino星君

数字化转型 小程序生态

Yii2.0 RESTful API 认证教程

Middleware

php RESTful Yii2

JVM最佳学习笔记<二>---垃圾收集器与内存分配策略

Loubobooo

Java Agent JVM

JVM最佳学习笔记<三>---虚拟机性能监控与故障处理工具

Loubobooo

Java Agent JVM

Yii2.0 RESTful API 之版本控制

Middleware

php RESTful Yii2

技术工作的一二三之快餐

拖地先生

项目管理 软件开发 技术管理 软件开发流程

【译】并不存在的普通用户(面向极端用户的设计)

Yukun

设计思维 可用性

ansible-playbook中when结合tags使用,实现变量控制执行

唯爱

JVM最佳学习笔记<一>---Java内存区域与内存溢出异常

Loubobooo

Java Agent JVM

简述 HTTP 缓存相关的首部及其行为

黄耗子皮

缓存 HTTP

技术工作的一二三之内功

拖地先生

个人成长

RocketMQ broker.properties

李绍俊

RocketMQ

最长回文算法(马拉车算法)分析

Gadzan

JavaScript 算法 LeetCode

阅读对写作的好处

七镜花园-董一凡

写作

Kubernetes in action 笔记

FeiLong

Kubernetes 容器

平台化服务的基石:用户认证模型设计

孤岛旭日

企业架构 模型 用户权限

Python 沙盒环境配置

黄耗子皮

Yii2.0 RESTful API 之速率限制

Middleware

php RESTful Yii2

ESP8266远程控制+MicroPython 固件初体验

黄耗子皮

物联网 esp8266

一周信创舆情观察(5.18~5.24)

统小信uos

基础软件 操作系统

Java 8 for Raspberry Pi开发者预览版-InfoQ