一、准备工作
我作为一名使用Eclipse开发Java程序的开发人员,学习开发J2ME程序当然还是要使用我最爱的Eclipse啦。你可以在http://www.eclipse.org/downloads/index.php下载到Eclipse的解压安装文件、语言包以及许多实用工具插件。
既然我们使用Eclipse开发手机应用程序当然离不开EclipseME这个插件,目前似乎也只有这个插件可以拿来开发J2ME程序。你可以在http://www.eclipseme.org/上得到免费下载的EclipseME,在这里我们采用eclipseme.feature_1.0.0_site.zip
除了Eclipse与EclipseME之外,我们还需要java运行环境和一些手机模拟器来完成整个搭建工作。
二、搭建Eclipse开发环境
1、Java运行环境
在本文里面我们使用JDK1.4.2_08版本,安装很简单,一路Next即可。
2、安装Eclipse
Eclipse SDK 3.1的安装工作只是一个解压缩的过程,非常简单,因为我的电脑上已经安装了Eclipse,并且这个步骤也非常简单,就也不再浪费口舌啦^_^
3、安装EclipseME插件
Eclipse中选择Help->Software Updates->Find and Install,
选中Search for new features to install,然后下一步。
在这里新建一个更新站点,因为我们在这里使用的是eclipseme.feature_1.0.0_site.zip,所以选择New Arachived Site。
在这里选择Finish,进入到Eclipse的安装界面。
在这里我们可以指定EclipseME安装的目录,点击Change Location,进入以下界面。
新增加一个位置用来存放EclipseME。
确定后开始安装,在安装的过程中会弹出这样一个数字签名的确认窗口。
我们引用作者的话说明这是为什么:
“At present the EclipseME package is not digitally signed. (Maintaining the keys required to digitally sign JAR files costs $400+/year. If anyone is interested in funding EclipseME to this extent, we'll be happy to sign the JAR files.)”
继续安装,会出现以下窗口要我们重新启动Eclipse,重新启动后,EclipseME就已经安装好了。
为了验证EclipseME确实已经安装上了,我们在Eclipse重启之后,打开Window ->Preference,可以看到一个J2ME选项。这时,Eclipse J2ME开发的第一步,我们已经成功的迈出了@_@
注意:安装好EclipseME之后,我们要对原有的Eclipse配置做一点小小的改动。由于开发J2ME时我们需要首先启动手机模拟器,那么在Debug模式的Eclipse默认设置不等到模拟器启动就会失败。修改这点很简单,在Window ->Preference->Java->Debug中,取消暂停选项,还应该把超时时间提高到 20000 毫秒。如下图所示,调试模式就可以顺利的启动了。
三、安装无线开发包与手机模拟器
EclipseME为我们提供了一个集成开发环境,但仅仅这些是不够的,我们还需要集成一种或多种手机模拟器来进行程序测试工作。目前,各大手机厂商都拥有多种型号的手机模拟器,并且Sun也提供了一种通用模拟器。这里我们采用Sun WTK和Nokia Developer's Suite 两种工具包来为大家演示。
1、加载Sun WTK v2.3
WTK(Wireless toolkit)是Sun为无线开发者提供的一个无线开发实用包。它拥有多个手机模拟器,我们在这里将WTK绑定到EclipseME,这将大大提高开发者的工作效率。当前WTK的稳定版本是2.2,最新的版本是2.3beta。以下是在windows平台上,各个版本的执行文件及下载地址。
2.2:
j2me_wireless_toolkit-2_2-ml-windows.exe
http://java.sun.com/products/sjwtoolkit/zh_download-2_2.html
2.3:
sun_java_wireless_toolkit-2_3-beta-windows.exe
http://java.sun.com/products/sjwtoolkit/download-2_3.html
只有偏执狂才能生存,在这里,我依然选择新的版本。安装过程也很简单,系统会自动检测到当前JDK所在路径,并引用该JDK
下面我将WTK绑定到EclipseME。
EclipseME会自动分析出当前模拟器类型,并显示出来。
确认之后,我们发现Platform Component一栏上添加了关于WTK的许多配置信息,此时,WTK已经被我们集成到EclipseME上了。
在上图里面,可以注意到我们确实安装的是WTK2.3beta版。
2、加载Nokia Developer's Suite
Nokia拥有多种型号的手机的模拟器,为了统一管理,它推出了用于集中管理这些模拟器的管理软件Developer's Suite。Developer's Suite本身是一个可以独立运行的工具包,就像WTK一样。不同的是Developer's Suite不需要EclipseME就可以和Eclpise集成。为了统一开发环境,这里主要介绍的是如何用EclipseME加载它所提供的模拟器。Developer's Suite功能较多甚至包含了地图编辑器和短信服务器,关于他们的详细内容,请参考Nokia开发者论坛。
目前最新的是Nokia Developer's Suite 3.0 for J2ME,你可以在http://www.forum.nokia.com/main/0,6566,034-2,00.htm下载。在我的Windows 2003系统上,每次运行InstallAnywhere 打包的安装程序总是有问题,不过这难不倒我,将安装程序setup.exe的后缀改成rar,用winrar解压缩到随便指定的setup目录即可,然后在其中的Windows子目录下,运行里面的setup.exe就进行正常的安装了。
因为我们要与Eclipse进行集成,所以需要选择Eclipse的目录。
在3.0版本的安装程序中,不再像2.2版本一样要求先输入序列号,你可以先试用,在14天内再进行注册。这个注册过程其实只是需要你在Nokia的网站上面注册一个用户,每次你在机器上面安装Nokia Developer’s Suite的时候,都通过注册窗口申请一个序列号就可以了,Nokia会免费发送到你的信箱里面的哦^_*
接着按照与添加Sun WTK相同的方法,在Platform Components中选中Developer's Suite的安装目录。
确定之后从下图可以看到,Wireless Toolkits中除了WTK,Nokia Developer Suite也被列在其中了。需要注意的是,Nokia Developer Suite 3.0里面自带的模拟器是7710的,这款手机是S40界面的,如果你想开发S60平台上面的J2mE程序,可以接着看下面的章节。
3、加载相应的SDK
如果你自己有着一款支持J2ME开发的手机,也可以到手机厂商的主页上面去找到相应的开发资源,比如for Java的SDK,这样就可以直接在与你手机相应的模拟器上面测试了。自己使用自己开发的程序,应该心里会很开心吧:D
我上周才买了一只Nokia 6630,当然要尝试用它来开发啦,这款手机的操作系统是Symbian OS v8.0a,开发平台为Series 60 2nd Edition, Feature Pack 2。相应的SDK当然应该是Series 60 Developer Platform SDK's for Symbian OS, for Java,下载页面:http://www.forum.nokia.com/main/0,6566,034-483,00.html,我的运气不错,在这个页面上面有着中文开发包: SDK for 2nd Edition, FP 2 – Chinese^_^
安装过程和Nokia Developer’s Suite3.0差不多,只是在最后出现了下图让你选择一个网卡。
最后,安装程序要求重新启动系统。
重新启动系统后,接着按照与添加Sun WTK相同的方法,在Eclipse的Platform Components中选中Developer's Suite的安装目录,最后看到下图就成功啦。
等你真正使用的时候,就会发现Nokia和Sun一样马虎,程序还是英文的界面,根本不是什么简体中文版-__-b
4、加载混淆器
EclipseME 用 Proguard 使MIDlet JAR 文件混淆。这种混淆可以减小字节码的尺寸,保护 MIDlet 的知识产权。ProGuard是一个开源的项目,主页:http://proguard.sourceforge.net/,目前最新的版本是3.3.2.。加载混淆器是非常简单的,只需要解压缩proguard3.3.2.zip,然后在 J2ME->Packing->Obfuscation 标签中选择 Proguard 的安装目录。如下图所示,在这里可以对需要在混淆过程中保留的类名进行配置,MIDlet 类的名称必须保留,以便设备的 Java 运行时环境(JRE)能够找到执行的入口点。
现在,可以用Eclipse开发第一个J2ME程序了!