1.前言
以前我一直用eclipse+SUN WTK 来开发j2me程序,有时也用nokia开发包,但总感觉eclipse过于庞大,且启动/编译速度也过慢。平时也用JCreator,但只是用来作一些测试程序。前段时间也曾试图在网上找一些用JCreator开发J2ME有资料,但未能如愿。网上也有多人提过这样问题,不是没有回答,就是回答中用的版本都是N 年前的或根本不可用。今天正好重新安装系统,下的基本是最新版的工具,正好试一下。
2.工作环境:
操作系统: windows 7(版本6.1)
开发工具:JCreator Pro 4.5.0.10
JDK: java version "1.6.0_12"
JRE: Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
J2ME: Sun Java (TM) Wireless Toolkit 2.5.2_01 for CLDC
3.具体实现
1)设置JCreator Pro
打开JCreator的Configure→Options→JDK Profiles 点击New
选择Home Path为你的JDK根目录(如我的为:C:/Program Files/Java/jdk1.6.0_12/)
将Name改为SunWTK(随你取,我是这样定的,后面的同理)
按Add→Add Archive→选取SUN WTK库目录(我的为C:/WTK2.5.2_01/LIB)将midpapi10.jar,midpapi20.jar,midpapi21.jar加入并确定。
同样打开JDK Tools选项,先选Select Tool Type为Complier缺省值),点击New
将Name改为SUNWTK,点击Parameters项,将它改为
-source 1.3 -target 1.3 -bootclasspath "C:/WTK2.5.2_01/lib/;$[ClassPath]" $[JavaFiles] -g -classpath "$[ClassPath]" -d "$[OutputPath]" $[JavaFiles]
其中:
-source 1.3 -target 1.3中必需的,为此我试了N久,没想到SUN的WTK 2.5.2 仍只支持java 1.3,(我试过1.4以上都不行),也可能模拟器的参数要调整。
-bootclasspath "C:/WTK2.5.2_01/lib/;$[ClassPath]"这个是网上找不的,没费功夫。
后面的是原有的。其它选项不用改,按确定回到JDK Tools。
重新选择Select Tool Type为Run Application,再次点击New
将NAME改为EMUSUN,将Command改为
C:/Program Files/Xinox Software/JCreatorV4/emusun.bat
其中C:/Program Files/Xinox Software/JCreatorV4为JCreator所在目录,也可以放在其它地方。
emusun.bat为我写的批处理文件(后面介绍)
点击Parameters项,将它改为:
"$[OutputPath]" "$[FileBase]"
其中的"是不能少的,我在这个上面也费了一点时间
"$[OutputPath]"为class文件所在目录,$[FileBase]为基本文件名(不带后缀)
到此,JCreator Pro设置结束
2)建立emusun.bat文件
在JCreator所在目录建立一个emusun.bat文件,内容如下:
@echo off
cd %1
C:/WTK2.5.2_01/bin/preverify -classpath "C:/WTK2.5.2_01/lib/midpapi10.jar;C:/WTK2.5.2_01/lib/cldcapi10.jar" %2
cd output
C:/WTK2.5.2_01/bin/emulator -Xverbose:class -classpath . %2
其中:
%1 即为class文件所在目录,为了避免命令行过长,我过了cd命令。
%2 即为文件名。
Preverify有一-d选项,可指定输出文件目录,缺省为output。我没有指定输出目录,直接用了output。
3)测试
现在,所的的准备都已完成,我们可以来测试一下成果了
首先,打开JCreator新建一项目(File→New->Project)
点Basic Java Application→Next(你也可建Empty Project)
项目名为jem2test→Next选JDK Profile 为SunWTK→选Select Tool Type 为Compiler并改为SUNWTK,再选Select Tool Type 为Run Application并改为EMUSUN
测试程序如下:
/**
* @(#)jem2test.java
*
* jem2test application
*
* @author Keiy
* @version 1.00 2009/9/12
*/
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class jem2test extends javax.microedition.midlet.MIDlet implements CommandListener {
/**
* Creates a new instance of <code>unit1</code>.
*/
protected Form form;
protected Command quit;
public jem2test(){
form=new Form("MIDlet测试");
form.append("这是一个MIDlet测试程序!");
form.setCommandListener(this);
quit=new Command("返回",Command.SCREEN,1);
form.addCommand(quit);
}
protected void startApp() throws MIDletStateChangeException
{ Display.getDisplay(this).setCurrent(form);
}
protected void pauseApp(){
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException
{
}
public void commandAction(Command command,Displayable displayable)
{
try{
if(command==quit){
destroyApp(true);
notifyDestroyed();
}
}
catch(MIDletStateChangeException me){}
}
}
现在,你可以直接按运行键,这可以看到结果了:
3.存在问题
1)对于多个源文件的项目,还没测试
2)目前,还不支持Debug功能