本文和大家重点讨论一下J2ME Polish+Eclipse配置过程,首先自然是Eclipse SDK的下载和安装,这个过程就不做过多的介绍,本人的默认安装路径是D:\ProgramFiles。其次是J2ME-Polish-2.0.1版本的安装,具体主要过程如下。
J2ME Polish+Eclipse配置过程详解
到目前(2010/1/20)为止,J2ME Polish官方网站上公布的Polish***版本是2.1.4,但是鉴于本人使用Eclipse-SDK-3.5.1-win32+J2ME-Polish-2.1.3版本配置时反复试验均没有成功,于是改为Eclipse-SDK-3.4.1-win32+J2ME-Polish-2.0.1版本进行配置,下面就对配置过程以及***创建工程的整个过程做一个介绍。
首先自然是Eclipse SDK的下载和安装,这个过程就不做过多的介绍,本人的默认安装路径是D:\ProgramFiles。其次是J2ME-Polish-2.0.1版本的安装,具体主要过程如下,前面的过程就不多说了,主要对以下关键几部进行说明:
1.在此选择安装路径,本人的安装路径为D:\ProgramFiles\J2ME-Polish2.0.1文件夹,点击next继续
2.分别设置WTK,各个手机厂商Emulator模拟器(如Nokia),以及IDE(如Eclipse)的安装文件路【注意:这一步的设置十分关键,应仔细设置好】,设置好后点击next继续
3.勾选Eclipse Integration(Mepose)这一项,点击下一步进入安装。
4.安装完成后退出。J2ME-Polish安装完成了,接下来就是在Eclipse中对它进行配置,这时需要一个Mepose的插件,使用Eclipse中的在线安装即可。#p#
步骤如下:
1.选择菜单【Help】->【SoftwareUpdates…】,在弹出的对话框中选择AvailableSoftware并在右侧的AddSite中的Location处添加地址:http://www.J2ME Polish.org/mepose即可。
2.点击Install进行安装。
3.安装完成后Eclipse会重启。如果安装成功在【Windows】->【Preferences】下会出现J2ME Polish菜单选项(如下图)。如果没能出现则说明安装过程存在问题,在确定所有设置均正常后,可能是由于版本之间的不匹配问题。本人当初安装时,使用的是J2ME Polish2.1.3与EclipseSDK3.5.1就出现过安装结束后没有出现J2ME Polish选项的问题,***换做现在的版本则安装一切正常。
通过以上步骤J2ME Polish的安装以及集成在IDE环境中的工作就算完成了,接下来新建一个工程来体验一下Polish的功能。
首先来新建一个Polish工程,【File】->【New】->【Other…】,在Java中选择J2ME PolishProject。
键入工程名HelloPolish,勾选Generatetemplate?选项,并在Classname一栏输入主类名PolishHello,Packagename一栏中输入包名com.polish.learning,点击next,下一步。
【注意】:此处的Generatetemplate?选项一定要勾选,不然后面建立类时会出现一些问题。
分别指定好Polish,WTK以及手机模拟器的各个路径地址。当然,这些都可以在build.xml文件中进行再设置,这个以后会慢慢给大家介绍。点击next,下一步。
在此,我们选择Configurations中的CLDC/1.1,Platforms中的MIDP/2.0以及Devices中Virtual的Generic/DefaultColorPhone,关于这里的设置,以后会慢慢给大家介绍。设置好后点击next下一步,然后点击Finish完成J2ME Polish工程的创建
这时候,Polish工程就创建完毕了,我们会在左侧的工程区域中看到创建好的工程文件HelloPolish。
其中的com.polish.learning包以及包中的PolishHello.java文件就是我们刚才勾选Generatetemplate?选项后设置的。打开PolishHello.java文件,我们会看到自动生成的一段代码:
接下来,我们在PolishHello.java文件中,输入如下程序段:
- viewplaincopytoclipboardprint?
- ·········10········20········30········40········50········
- 60········70········80········90········
- 100·······110·······120·······130·······140·······150
- packagecom.polish.learning;
- importjavax.microedition.lcdui.Display;
- importjavax.microedition.lcdui.Form;
- importjavax.microedition.lcdui.StringItem;
- importjavax.microedition.midlet.MIDlet;
- importjavax.microedition.midlet.MIDletStateChangeException;
- importde.enough.polish.util.Locale;
- publicclassPolishHelloextendsMIDlet{
- privateFormmyScreen;
- privateDisplaydisplay;
- protectedvoidstartApp()throwsMIDletStateChangeException{
- //TODO:Implementthismethod.
- this.myScreen=newForm(null);
- //#stylestringItem
- StringItemhelloPolishItem=newStringItem(null,"HelloPolish!");
- this.myScreen.append(helloPolishItem);
- this.display=Display.getDisplay(this);
- this.display.setCurrent(this.myScreen);
- }
- protectedvoidpauseApp(){
- //TODO:Implementthismethod.
- }
- protectedvoiddestroyApp(booleanunconditional)
- throwsMIDletStateChangeException{
- //TODO:Implementthismethod.
- }
- }
- packagecom.polish.learning;
- importjavax.microedition.lcdui.Display;
- importjavax.microedition.lcdui.Form;
- importjavax.microedition.lcdui.StringItem;
- importjavax.microedition.midlet.MIDlet;
- importjavax.microedition.midlet.MIDletStateChangeException;
- importde.enough.polish.util.Locale;
- publicclassPolishHelloextendsMIDlet{
- privateFormmyScreen;
- privateDisplaydisplay;
- protectedvoidstartApp()throwsMIDletStateChangeException{
- //TODO:Implementthismethod.
- this.myScreen=newForm(null);
- //#stylestringItem
- StringItemhelloPolishItem=newStringItem(null,"HelloPolish!");
- this.myScreen.append(helloPolishItem);
- this.display=Display.getDisplay(this);
- this.display.setCurrent(this.myScreen);
- }
- protectedvoidpauseApp(){
- //TODO:Implementthismethod.
- }
- protectedvoiddestroyApp(booleanunconditional)
- throwsMIDletStateChangeException{
- //TODO:Implementthismethod.
- }
- }
#p#在“resource”的文件夹下新建两个文件,一个是“polish.css”文件,并在“polish.css”文件中输入以下CSS样式代码:
- viewplaincopytoclipboardprint?
- .stringItem{
- margin-top:2;
- padding:2;
- padding-left:5;
- font{
- color:black;
- size:medium;
- style:bold;
- }
- layout:left;
- }
- .stringItem{
- margin-top:2;
- padding:2;
- padding-left:5;
- font{
- color:black;
- size:medium;
- style:bold;
- }
- layout:left;
- }
然后为了可以顺利的运行,我们需要稍稍改动一下build.xml中的设置,在build.xml文件中找到
- viewplaincopytoclipboardprint?
- <jad>
- <attributenameattributename="Nokia-MIDlet-Category"
- value="Game"if="polish.group.Series40"/>
- </jad>
- <jad>
- <attributenameattributename="Nokia-MIDlet-Category"
- value="Game"if="polish.group.Series40"/>
- </jad>
在<jad>标签内加入一句,变成这样
- viewplaincopytoclipboardprint?
- <jad>
- <attributenameattributename="Nokia-MIDlet-Category"value="
- Game"if="polish.group.Series40"/>
- <attributenameattributename="MIDlet-1"
- value="HelloPolish,,com.polish.learning.PolishHello"/>
- </jad>
- <jad>
- <attributenameattributename="Nokia-MIDlet-Category"
- value="Game"if="polish.group.Series40"/>
- <attributenameattributename="MIDlet-1"
- value="HelloPolish,,com.polish.learning.PolishHello"/>
- </jad>
***,我们来运行,在PolishHello.java上点击右键,在弹出的菜单上选择【RunAs】->再在右边选择【J2ME PolishMIDlet】;可能此时会碰到几种运行时的问题
1.控制台中提示
- com.sun.tools.javac.Mainisnotontheclasspath.
- PerhapsJAVA_HOMEdoesnotpointtotheJDK
在网上查了很多的解决办法都比较麻烦,这里有一种简单的方法,就是
Trycopyingtools.jarfromjava\jdk1.6.0_11\libtojava\jre6\lib,将jdklib目录下的tools.jar文件直接拷贝到jre的lib目录中,然后关闭Eclipse再重新打开运行工程文件,上述问题便会得到解决。
2.【注意】:在<jad>标签内加入的那句话一定要书写正确,尤其是value中的值:
value="HelloPolish,,com.polish.learning.PolishHello",首先是这个J2ME Polish的工程文件名,然后是刚刚在创建Polish时Generatetemplate?选项中的设置的包名和主类名(不用加后缀.java),这两个之间有两个英文的逗号,这两个逗号可一个都不能少,不然会出现问题。至少本人当初设置时因为少了一个逗号,运行时出现了HelloPolish,nullException:java.lang.NullPointerException的异常,希望大家注意!
【编辑推荐】
- 畅谈J2ME Polish的使用
- 深入探究cookie技术在J2ME平台的应用与实现
- 探究J2ME中cookie库的管理
- Eclipse中进行JVM内存设置
- 解析Linux下如何用eclipse搭建J2ME开发环境