产生项目以后,会出现项目的设置表,您可以选择当前目标平台,CLDC配置,以及要采用的MIDP可选包。再不需要某个库文件时,请不要选中它,以减少最后程序大小。
另外,您还可以指定MIDlet的属性,这些设置将成为JAD,即J2ME程序的描述信息文档。
我们的Hello World目前不需要其它的附加设置,于是采用默认,确定之后,控制台信息提示建立成功。
WTK产生项目后,不同类型的资源有着相对固定的存放位置。Java源文件被放在apps目录下\Hello World\src下,相关程序资源文件(图片,音频)放在\Hello World\res下,应用程序库文件放在\Hello World\lib下,这在WTK中是必须注意的,即便是相对路径,也必须是在该类型目录下建立。
项目创建成功后,我们来创建一个MIDlet文件,MIDlet是J2ME项目文件的入口文件,也是必须的。在\Hello World\src目录下创建HelloWorld.java,采用默认包,注意,此时创建的java程序必须是与我们在创建项目时键入的MIDlet类名一致。
在新创建的java文件中输入代码,下文是一个简单的欢迎Form程序。
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class HelloWorld extends MIDlet {
Display display;
public HelloWorld() {
super();
display = Display.getDisplay(this);
}
protected void startApp(){
Form form = new Form("Hello World!");
form.append("Welcome to J2ME world!");
display.setCurrent(form);
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0){
}
}
完成后保存java文件,单击WTK的生成键,由WTK为您进行编译,如果有错误生成,则会在控制台中提示。
根据提示信息对MIDlet文件进行修改,再重新生成,直到编译成功。对编译成功的程序,执行运行,可以看到弹出一个手机模拟器,显示出我们的第一个Hello World程序,如果执行有错,依然会在控制台中给出提示信息。
开启旧项目
当我们下一次重新启动WTK的时候,选择打开项目,WTK会把apps目录下的应用项目全部显示出来,包括我们刚刚建立的Hello World,选择载入后,就能够重新运行了。
第四节执行MIDlet,打包和混淆
执行MIDlet
除了我们刚刚介绍的在KToolbar中执行一个程序,我们还可以在程序组中直接选择Run MIDP Application…, 这是就可以在弹出的对话框中选择其它路径中的JAD程序运行了。
当我们直接选择运行时,需要注意两个问题:
1. JAD描述文件与其指定的JAR档案文件在同一个目录下。
2. 运行目录路径中不要包含中文。
打包成JAR
KToolbar的生成功能只能帮我们将源代码编译并预先审核,并不会帮我们产生JAR文件,而我们如果要发布MIDP程序,除了JAD描述文件,JAR是必须的,这就需要打包。
在KToolbar选中项目 —— 包 —— 产生包,可以把整个程序,包括资源文件打包成JAR文件。形成的JAR保存在apps\HelloWorld\bin目录下。
包混淆
在上面的操作中,我们看到,除了“产生包”,另外还有一个“产生混淆包”选项。所谓混淆,是为了防止别人反编译后读取源代码,将程序(.class文件)进行混淆,经过混淆的Java Byte Code可以增加别人反编译的时间,即便反编译后,也会因为类名变化成没有意义的符号而增加理解源程序的难度。更进一步,由于混淆大大缩短的源程序中类,成员变量以及方法名称,导致生成的JAR体积变小!
目前一般比较常用的混淆器是两款开源产品:ProGuard和RetroGuard,本文采用前者作为示例,你可以在http://proguard.sourceforge.net/ 上获取。
把刚刚获取的






