手机的j2me程序一般包括两个文件:jad和jar,其中jar是程序的主题,jad为程序的描述文件,相当于一个安装脚本信息,告知j2me安装程序如何找到和校验jar文件,平常的使用中我们很少注意这两个文件的内部,事实上,很多常见程序的安装和运行问题都可以通过手动修改这两个文件来解决,也可以通过查看这两个文件来大概了解你的手机是否在该程序的支持之列。
下面我们就以游戏《大富翁》为例,对手机的j2me作个分析
一、jad文件:
用记事本打开jad文件,会出现如图所示的画面,以下就是对他清单的解释(“()”中为对该项的解释)
1、MIDlet-Jar-Size: 95605(j2me文件的大小,单位:字节)
2、MIDlet-Jar-URL: j2me1.jar(网络路径)
3、Manifest-Version: 1.0(程序软件版本信息)
4、MicroEdition-Configuration: CLDC-1.0(遵循的配置文件标准)
5、MIDlet-Name: 大富翁中国之旅(主程序名称)
6、MIDlet-Vendor: 伟特力群(软件开发商)
7、MIDlet-1: 大富翁中国之旅, /icon.png, RichmanTaiwanMIDlet(相对路径)
8、MicroEdition-PRofile: MIDP-2.0(虚拟机版本)
此外有的jad文件还有:
1、MIDlet-Icon:/j2me1/j2me1.png(图标文件路径)
2、MIDlet-Description:Graphical java benchmark for mobile devices(程序描述)
3、MIDlet-Info-URL:http://wap.jbenchmark.com(wap地址描述)
其中,MIDlet-Jar-Size项标注的大小与实际文件大小不符以及MIDlet-Name名称与jar文件的名称不一致,会使程序安装过程在初始化校验阶段即报错退出,遇到这种情况,可查阅该文件,将文件大小和名称更改后再进行尝试。由于该文件只是一个程序描述文件,即使丢失也可以用Jadgen之类的软件重新生成,如果你觉得麻烦,可以直接用主程序文件来生成jad文件。
另外,通过MicroEdition-Profile项可以大致了解该软件运行需要的配置,此处为MIDP-2.0,如果你的手机只支持MIDP-2.0一下版本,那么不用安装调试就可以选择放弃了,低版本的虚拟机不可能兼容高版本的程序。
二、jar文件
略懂java的朋友都知道,java程序和电脑、手机上运行的其他目标代码程序不一样,他便以后产生的知识一种中间代码程序,文件扩展名为class,java虚拟机通过将这些中间代码解释为本地目标代码来执行。正因为采用了这种迂回的体制,才使得java拥有了“一次编写,随处运行”的跨平台特点。我们看到的jar文件就是这些class文件的打包。用winrar之类的解压缩软件可以看到这些压缩包的内容,如下图所示。
在其中有一个META-INF文件,里边就存储了打包文件的所有信息。打开META-INF可以看到一个MAINFEST.MF文件。
该文件包含程序运行时的主入口信息、配置信息、显示信息的程序名等等。用记事本打开之后会出现如下图的界面。
其中信息为:
Manifest-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Name: 大富翁中国之旅
Created-By: 1.4.2_03 (Sun Microsystems Inc.)
MIDlet-Vendor: 伟特力群
MIDlet-1: 大富翁中国之旅, /icon.png, RichmanTaiwanMIDlet
MIDlet-Version: 1.0.17
MicroEdition-Profile: MIDP-2.0
虽然在形势上该清单文件和jad中的相差无几(事实上,jadgen就是根据这个文件生成jad文件的),不过意义上却不能同日而语,对他的修改将会直接体现在程序运行中。其中MIDlet-Name为安装后在终端中显示的程序名称,可以通过修改这个字段来达到显示中文程序名的目的。
三、具体的操作为:
1、用winrar之类的软件将该文件解压出来;
2、用windows自带的记事本程序打开它;
3、修改该字段为你希望现实的中文名字;
4、保存。注意:因为java只支持Unicode模式如图所示,windows 2000以上版本直接存储为Unicode码,对于不支持Unicode编码的,可以选用相应的工具软件进行修改;
5、完成后,把该文件拖放到winrar,选择覆盖即可,如图所示;
6、因为修改后,文件大小和名称都发生了改变,所以需要用jadgen重新生成jad文件。
清单中MIDlet-1: 大富翁中国之旅, /icon.png, RichmanTaiwanMIDlet请不要修改,这是程序的主入口信息,如果你修改了相应的class文件名称,则此处必须修改,否则会出现指针错误。由于java程序在编译时要求编译后的class文件名必须和程序中的类文件名相一致,所以也请不要修改class文件的名称,否则有可能出现无法预知的错误。
以上是对手机java程序中清单文件的一点解释说明,希望在安装和使用j2me的程序时会有一些帮助的。