用WTK生成J2ME的可执行文件包括一个.jar文件和一个.jad文件,其中Jad是配置文件,在一些手机上需要这个文件才可以运行程序(例如诺基亚),如果是用Eclipse结合eclipseMe插件自动生成的jad文件通常在运行的时候会提示缺少一项MIDlet-1,要自己手动添加。一个典型的Jad文件内容如下:
MIDlet-1: MainMIDlet,logo.png,com.j2me.main.MainMIDlet
MIDlet-Jar-Size: 343713
MIDlet-Jar-URL: aa.jar
MIDlet-Name: aa Midlet Suite
MIDlet-Vendor: Midlet Suite Vendor
MIDlet-Version: 1.0.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1
在一些不支持MIDP2.0以上的机子上可能会提示不支持程序,这时可把最后一项改为MIDP-2.0或MIDP-1.0
MIDlet-1这一项中第一个是在运行时显示的名称,第二项是运行时显示的图标,第三项为程序的主类,手机会自动调用这个类。
在前面说过,有些手机并不需要jad文件,可是没有Jad的配置手机如果去执行程序呢?例如怎样找到主类?其实在jar文件的META-INF文件夹中有一个MANIFEST.MF文件,这个文件里面的内容跟jad文件的内容一样,所以如果手机不需要jad文件的话一般会去读取这个文件里的参数,所以有时候程序运行不了的时候要检查一下是不是这个文件缺少什么或者哪里错了(典型的就是缺少MIDlet-1项或者设置的MIDP版本过高。
PS:写这个的主要目的是在手机顽童模拟器上运行自己的写程序居然没办法读取,仔细研究过后发现是MANIFEST.MF文件少了MIDlet-1项(手机顽童模拟器不需要Jad文件,Sun的WTK模拟器是读取Jad文件的),所以记录下以备以后查看。