使用“月蚀”进行J2ME开发<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
by 蜡笔小刀
使用了近一个月的Eclipse来做J2ME开发,越来越觉得他方便好用。即时语法检查不但预先避免了很多错误,而且在修改代码时能迅速定位到受影响的代码。修改类名类成员名能自动修改所有关联的代码。Eclipse还提供了多种视图(perspective)方便的管理工程,并可以同时打开多个工程。其他的一些特点如支持代码折叠的编辑器,自动生成代码,格式化代码,自动添加Javadoc注释等也丝毫不逊于其它的开发工具。当然他还有非常漂亮的界面。对了,他还支持CVS!
如果你还在使用WTK,正在考虑是否选择一款JBuilder这样的IDE,我强烈建议你一定要试一试Eclipse —“月蚀”。
下面对在一台完全没有Java开发环境的计算机上安装配置Eclipse+EclipseMe+WTK的J2ME开发环境做一个介绍。
一、安装
1. 安装JDK。不用多说了。
2. 安装WTK。也不用多说了。
3. (如果需要的话)安装厂商提供的模拟器。安装的过程中应该会让你选择WTK的安装目录(Nokia的就会,其他的没用过)。我建议如果你有安装好的模拟器(比如在另一台机器上),可以直接将整个目录拷贝到WTK的device目录里面。
4. (如果需要的话)安装proguard。如果直接使用WTK(2.0以上版本)开发,我们只要将proguard.jar拷贝到WTK的bin目录里面就可以使用了。但如果要在Eclipse中使用proguard,请使用完整的proguard-将progurad的zip包解压到一个目录就行。
5. 安装Eclipse。我使用的版本是2004年6月25号发布的3.00版。安装非常简单,只要下载Eclipse的压缩包然后解压就可以了。
6. 安装EclipseMe。Eclipse本身并不支持J2ME,但是Eclipse强大的扩充性可以使他成为适应任何语言的开发环境-只要开发相应的插件即可。EclipseMe就是Eclipse的一个J2ME插件。安装同样是只要直接解压。将Eclipseme解压到Eclipse的plugins目录下面就可以了。
二、配置
安装完毕,打开Eclipse。它启动的比较慢,不过你可以趁这个时间去泡杯茶或咖啡。如果是第一次运行Eclipse,它会让你选择一个workspace目录,以后用Eclipse建立的工程都会放到这个目录里面。如果你原来是使用的WTK,你不妨将这个workspace设为WTK的apps目录,这样就可以把你原来的工程转移到Eclipse中。不过,Eclipse并不会将workspace中的子目录直接视为自己的工程,怎样将WTK建立的工程转化为Eclipse的工程我下面再说。
1. EclipseMe基本设置
EclipseMe的安装目录中带有文档,指导你一步一步设置EclispeME。不过看了我写的这篇文章,你就不必再去看那些E文了
在Eclipse 菜单中选择Window->Preferences,打开Preferences窗口,如下图:
其中的J2ME选项是安装了EclipseME插件后才会出现。右边有三个目录位置可以设置。deployed是打包后的jar文件存放位置(打包时jad文件也会被拷贝一份放到deployed目录中),res是存放资源的地方(相当于WTK的res目录),verified是通过预审核的class文件存放的地方。一般这三个目录都不用更改。
下面要进行J2ME平台定义。我们知道J2ME平台由Device Configuration和Profile构成。配置Eclipse时我们需要选择不同的DC和Profile组成我们需要的开发平台。其实就是选择一些特定的包和API。EclipseME直接使用WTK提供的开发包,因此需要为EclipseME设置WTK的安装路径。在刚才的Preferences窗口的J2ME选项下面选择平台组件(Platform Components),右边打开的选项页如下图所示:
在WireliessToolkits上单击右键,在弹出菜单上选择Add Wireless Toolkit,会弹出一个对话框让你选择WTK的安装路径,将刚才安装WTK的路径选上即可。如果你的WTK版本在2.0以上的话,你就拥有了Midp1.0,2.0两个平台定义。
但如果要使用厂商提供的开发包怎么办?你可以直接在选择WTK的时候指定厂商的WTK而不是Sun的标准WTK,或者可以通过添加Profiles的方法将厂商提供的开发包添加上去,然后在Add Platform Definitions的时候选择这个Profile。如下图:
(添加Nokia 7210 Profile)
(添加Nokia 7210平台定义)
2.改变Eclipse设置
EclipseMe的文档上说,由于WTK的某些怪癖,如果想用Eclipse调试Midlet的话就要对Eclispe的默认Java-Debug设置做些调整。最终的设置如下图所示:
3.配置ProGuard
在Preferences窗口J2ME->Obfuscation选项页中,设定刚才安装的proguard的路径即可。
4.其他设置
上图的设置指定了源程序目录和class文件输出目录。如果使用默认的设置,对于从WTK转过来的工程就会显示找不到包的错误。最好设置成上图所示。
三、 使用
1. 建立Midlet Suite和Midlet
一个Midlet Suite就是一个工程,选择菜单 New->Project->J2ME Midlet Suite,按步骤指定工程名,选择平台定义(WTK Midp1.0/2.0或自己定义的如上面的Nokia7210)。Finish之后一个新的工程就建好了。Eclipse会在你的workspace目录中建立一个该工程的子目录。
建好工程后,选择菜单New->Other->J2ME(J2ME Midlet),会有对话框帮助你建立一个MIDlet子类。选择完成后,会自动生成一个midlet的代码框架。
2. 将WTK的工程转为Eclipse工程
先将该工程的目录拷贝到Eclipse指定的workspace目录中,(如果你已经直接将WTK的apps目录设定为workspace目录就不用了),然后建立一个新的Midlet Suit,名字要和原来的工程目录名完全一样。完成后,在Eclipse的Package Explorer中右键单击该工程,在弹出菜单中选择J2ME->Convert to J2ME Midlet Suit即可。
3. 打包与混淆
在Eclipse的Package Explorer中右键单击工程,在弹出菜单中选择J2ME->Create Package即可打包。如果已经设置了ProGuard的路径,选择Create Obfuscated Package即可混淆打包。生成的jar文件会被放到deployed目录中,该目录中还会有几个jar和其他一些文件,但我们不用去管它。
如果你没有更改一个设置,打包的时候应该会出现"Could not find jar tool executable”的错误。如下图所示,将原来默认的操作系统自带的jre去掉,添加上你的JDK安装目录即可。
4. 调试与运行
工具条上的“虫子”和绿色箭头分别用来启动调试和运行。不过在这之间你要为每个工程进行调试/运行的配置。主要要注意的就是选择合适的模拟器和选择Midlet(如果你还没有打包却选择按over the air方式运行是会有错误的)
基本的设置就是这样的了(也许会有些遗漏),如果还有问题请参考EclipseMe的文档,特别是faq.html可能会解答你很多的问题。不过还有一点要说一下,Eclipse运行比较慢(特别是调试的时候),所以最好优化一下你的电脑并且在运行Eclipse时不要开其他特耗资源的软件。
ps:我还没有办法将Moto的模拟器整合到Eclipse中,哪位知道的请指点一下。