一、安装
EclipseME是Eclipse平台上开发J2ME的插件,可以到www.eclipseme.org 去下载最新的版本,我下载的是1.5.4版,顺便说一句,我的Eclipse是3.2版。
首先把EclipseME安装到Eclipse平台,我没有采用它的网站上建议使用的update site的方法,而是使用外挂插件的安装方式。外挂插件的安装方式可以参考前面的Blog:http://blog.csdn.net/infowain/archive/2006/07/27/985585.aspx
二、配置
接下来需要对EclipseME进行适当的配置,在Eclipse的“窗口”菜单,找到“首选项”,找到J2ME这一项,设置好其中的WTK Root。WTK的安装方法可以参考前面的Blog:http://blog.csdn.net/infowain/archive/2006/08/02/1011401.aspx
接下来设置Device Management
刚进入这个画面的时候是没有内容的,点击“import”按钮,出现import device画面:
在Specify search directory那里选择WTK所在的目录,然后记得要点“refresh”按钮,就可以搜索到WTK所带的Device了。
然后回到图一的届面,把默认设备选择为J2ME Wireless Toolk DefaultcolorPhone,这个纯属我个人喜好,用其他的设备应该也OK
三、使用
接下来在Eclipse里面新建一个项目,项目向导选择J2ME Midlet Suit,取名为TestMe,其他的选项都先用默认值即可。
接下来在TestMe上点击右键,选择新建-〉其他-〉J2ME-〉J2ME Midlet
包名填test,类名填HelloWorld,EclipseMe会帮助产生代码框架。
完整的代码如下:
package test;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class HelloWorld extends MIDlet {
public HelloWorld() {
// TODO 自动生成构造函数存根
Form form = new Form("Hello World");
form.append("Welcome to J2ME world!");
Display.getDisplay(this).setCurrent(form);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根
}
protected void pauseApp() {
// TODO 自动生成方法存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成方法存根
}
}
四、运行
在Eclipse里面选择运行,以Wireless Toolkit Emulator来运行,Midlet选择test.HelloWorld。
可是我第一次执行的时候却出现了错误:
Running with storage root DefaultColorPhone
java.lang.ClassNotFoundException: test/HelloWorld
at com.sun.midp.midlet.MIDletState.createMIDlet(+14)
at com.sun.midp.midlet.Scheduler.schedule(+52)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+116)
Execution completed.
699655 bytecodes executed
2 thread switches
742 classes in the system (including system classes)
3563 dynamic objects allocated (97108 bytes)
1 garbage collections (0 bytes collected)
一个简单的HelloWorld竟然也有问题,我费了好大力气,论坛上也去发了新多帖子,可是没有答案。最后只好自己动手,把jad等等仔细研究了一遍,终于发现了问题的原因。
原来EclipseMe使用了Eclipse默认的构建路径,把class文件编译到bin不目录里面,而WTK执行的时候默认的class需要在verified/classes目录里面,这样就造成了ClassNotFoundException异常。
改正的方法:在project的属性里面,把java构建路径的缺省输出文件夹由TestMe/bin改为TestMe/verified/classes就可以了。
重新编译执行,终于看到了期望的画面: