1.
怎样使用本书配套光盘中的源程序?
答:首先需要安装J2SDK1.4.1, midp2.0fcs, WTK2.0或2.1(这些软件在配套光盘中都有)然后才能使用这些源程序。
对于第1-7章中的程序,可以使用mid xxxx(这里xxxx为.jad文件的名字)来编译和运行,也可以直接使用 run xxxx来运行它们。相关的.bat文件可以从配套光盘的bat目录中找到,拷贝到程序所在目录即可。(在第2章中有个别的例子含有main函数,可以使用test xxxx来编译和运行;在第4-6章中有个别例子含有多个文件或类,使用mid命令时要跟多个类的名字,具体的做法见书中的说明。)
其余各章的程序要使用WTK2.0(或WTK2.1),具体做法是:将相应项目的目录复制到c:\wtk20\apps之下,并去掉文件的只读属性,然后使用WTK的KToolbar工具来打开这些项目,单击“Build”即可编译,单击“Run”即可运行。详细的操作可以参见1.3节。
2.
哪些手机可以运行Java程序?
答:现在有很多手机都能运行Java程序,例如:Motorola的388、T720、T720i、V60i;Nokia的9210c、6610、7210、7650、3530、6100、3650;Siemens的6688i、3118、2128、S57;Sony Ericsson的P820等等。要注意有部分手机才支持MIDP2.0,如NEC的e606,Nokia的6600,华硕的AGP 600等等。
3.
怎样在计算机上运行从网站下载来的MIDP程序?
答:从网站下载MIDP程序要注意同时下载.jad文件及.jar文件,在必要时需要对.jad文件的内容进行修改,例如,修改其中的MIDlet-Jar-URL: http://www.xxx.com/aaaa/xxxxx.jar改为MIDlet-Jar-URL: xxxxx.jar(即使用本机的jar文件)。然后使用run xxxxx或runW xxxxx即可运行它们,这里用到的run.bat及runW.bat在配套光盘的bat目录下可以找到。
4.
怎样将程序放入实际的手机中运行?
答:要使用手机供应商提供的工具软件,或者通过网络进行。可以参考本节的1.5节中的详细介绍。
5.
为什么程序在实际的手机中运行不正常?
答:有多种原因,最常见的情况:一是.jad文件对.jar文件的大小(MIDlet-Jar-Size)描述与实际的情况不合,请改正后,重新载入手机中;二是手机只支持MIDP1.0而不支持MIDP2.0,如果你的程序确实没有使用MIDP2.0中的类,可以将.jad文件中的配置(MicroEdition-Profile)从MIDP-2.0改为MIDP-1.0。还有一种常见的情况是程序中使用了特殊的API,这种程序无法在其他类型的手机上使用。
6.
一个MIDP程序经过了编译和打包,为何运行时提示“没有经过preverify”?
答:这是因为MIDP的程序的类文件在运行前要经过“预审(preverify)”以保证其安全性以及不使用不该使用的类。MIDP具体的编译、预审、打包、运行的步骤见本书的1.2节。另外,使用WTK( Java Wireless Toolkit)来进行这些步骤更为方便,
7.
使用WTK时,为什么源程序修改正确了而WTK仍提示有错?
答:这是由于WTK还没有刷新该项目。应该重新打开该项目,然后再进行编译。
8.
使用WTK时,为什么在外部编辑器中修改了.jad文件,而WTK又让它回原了?
答:这是由于WTK记录了.jad文件的内容,当建立该项目时,它又将.jad文件的内容写回去了。应该在没打开该项目的情况下修改.jad文件,然后再打开该项目。也可以在WTK通过“Project”菜单中的“Settings….”中设置,然后WTK会自动将这些设置写回到.jad文件中。
9.
J2ME程序中为何不能使用double和float?
答:这是受设备处理能力的限制,所以在J2ME的MIDP中规定不能使用浮点数,本书的第8章专门介绍了如何处理浮点数。
10.
J2ME程序能使用文件吗?
答:J2ME中不能使用普通意义下的文件,在本书的第6.2节专门介绍了如何使用将资源文件作为输入流的方法。可以用RMS来管理数据(见第6章)。另外,在一些手机供应商的专用API(如Motorola提供的API)中有文件类。
11.
J2ME程序中为何不能使用AWT?
答:J2ME中有专用的界面方式,称为lcdui,它比AWT及SWING要简单得多,本书中第3、4章中进行了介绍。另外,有类似于AWT的软件包,叫kAWT,书中的11.2节中进行了介绍。
12.
WTK中怎样使用从网站下载的类库?
答:如果它提供了源程序,可以将源程序复制到项目的src目录下;如果它提供了编译并预审过的类库,可以将类库复制到项目的lib目录下,要注意将.zip文件名更名为.jar文件;如果它提供了.class文件,可以将它先打包到.jar文件,然后放入到lib目录下。
13.
生成的.jar文件特别大,不能装入到手机上,怎么办?
答:一是去掉不必要的类,二是使用WTK中的“Project”菜单中的“Package /Create Obfuscated Package”功能,它可以有效地减少.jar文件的大小。但这要求系统中安装了Proguard,具体操作方法参见10.5节。
14.
怎样保护源程序,防止别人反编译?
答:可以使用Obfuscate技术对程序进行代码混淆,最易于使用的代码混淆器是Proguard,具体操作方法参见10.5节。