用Java语言开发物联网设备应用(1)

用Java语言开发物联网应用(1)

  • 写在前面的话
  • 让我们从Eclipse开始
    • 下载安装开发工具(Windows版)
    • 创建HelloWorld
    • 在模拟器运行HelloWorld
  • 下一步——在实际设备运行

写在前面的话

2007年的时候,我还在SUN Microsystem工作。当时SUN把自己的JavaME虚拟机贡献给了开源社区,叫做phoneME,发布在Java.net上。我的team leader专门找到我,问我想不想用刚刚开源的phoneME项目搞点有意思的事情,在下一年的JavaOne上搞个presentation啥的。我也没多想,随口答应了下来。没想到后来这个项目一做就是4、5年,这就是PSPKVM的由来,一个在PSP游戏机上的JavaME虚拟机。当时PSP的装机必备软件列表上,PSPKVM一直都是常客。很多人用PSKKVM跑JavaME的浏览器(Operamini,UCWeb),各种手机JavaME网游,还有众多Google服务套件。每天在论坛和邮件里和PSPKVM的用户们交流,是我那几年每晚的乐趣所在。
时移世易,JavaME在手机上逐渐被Android和iOS取代,但是我与Java的故事并没有结束。如今,我在github上新开了一个项目,将phoneME的代码移植到MCU和各种嵌入式设备中去,并给这个项目起了个新的名字:JOSH,意思是JOSH Open Smart Hardware。这个项目基本上是把CLDC部分的代码保留,加入了访问物联网外设的接口(Device IO),将MIDP部分基本裁掉,达到缩小尺寸和内存占用、适配低成本物联网设备的目的。
目前的JOSH支持Linux和Windows模拟运行,也可以通过一个集成的RT-Thread内核跑在MCU上,还支持了ESP32 Wifi芯片。除此以外,我的下一个目标是将JOSH跑在无操作系统的MCU上,把JOSH做成一个真正的操作系统——一个支持用Java语言编写APP的物联网操作系统
JOSH的系统源代码目前可以通过github访问:https://github.com/ruitaomu/JOSHVM 。而如果你是个Java程序员,或是个有Android编程经验的移动端开发者,也可以完全略过JOSH的系统源代码,直接从这个教程开始,一步一步地开始进入物联网编程的世界。
“将移动互联网的编程体验带到物联网世界”——这,大概就是我的梦想吧:)

让我们从Eclipse开始

下载安装开发工具(Windows版)

目前,JOSH的应用开发工具JOSHVM Studio只发布了Windows版本。建议使用Windows 7或以上版本运行。

  1. 下载JOSHVM Studio。这是一个定制版本的Eclipse IDE的免安装压缩包。
  2. 下载完成后将压缩包解压到任意路径(路径中不含中文和空格)
  3. 到解压后的路径下JoshVM\Studio文件夹下找到JoshVMStudio.exe并打开,选择工作空间
    用Java语言开发物联网设备应用(1)_第1张图片

创建HelloWorld

  1. 打开File->New菜单,选择Standalone工程
  2. 在Project name输入框中输入项目名,在这里我们输入HelloWorld。然后点击"Add"添加Configuration
    用Java语言开发物联网设备应用(1)_第2张图片
  3. 在接下来的Configuration页面,选择JOSHDeveloperBoard_V0
    用Java语言开发物联网设备应用(1)_第3张图片
  4. 点击Finish
  5. 回到项目创建页面,再次点击Finish。
  6. 从左侧浏览界面找到src->HelloWorld.java,双击打开,在main函数中输入代码
public class HelloWorld {
  public static void main(String[] args) {
  	System.out.println("Hello Josh!");
  }
}	
  1. 按Ctrl+s键保存。查看确保自动编译为选中状态

在模拟器运行HelloWorld

  1. 在左侧工程窗口,找到要运行的项目HelloWorld,鼠标右键单击项目名称,选择Run As->JOSH Emulated Application
  2. 在console控制台查看应用输出
    用Java语言开发物联网设备应用(1)_第4张图片

下一步——在实际设备运行

至此,你已经完成了第一个JOSH应用程序。下一步就是把这个程序下载到实际的设备中运行了。我们将在下一篇中介绍如何将JOSH应用运行在实际设备中。

你可能感兴趣的:(JOSH)