用Eclipse生成的jar文件不能在手机上运行

用Eclipse生成的jar文件不能在手机上运行  

 

        刚刚开始学习J2ME的时候就遇到这个问题,后来在网上查了大量文章,但觉得没有一个比较全面的回答。在这里我总结一下这个错误产生的原因和解决方法。

        方法一:

        首先我们来看一下网上其它的朋友是如何解决这个问题的(蓝色部分):

 原因: 用Java(TM) ME Platform SDK生成的jar没问题,对比之下,

 发现用Eclipse打包生成的MANIFEST.MF文件和jad文件都有缺漏.

 

 解决方法: 用WinZip或WinRAR打开Eclipse打包的jar,用记事本打开META-INF目录下的MANIFEST.MF文件,

 在开头加一行"MIDlet-1: MIDlet1,,J2MEDemo.MyTest",手机运行的错误提示"关键信息已丢失"就是指这行.

 其中,MIDlet1是在手机上运行时显示的程序名,J2MEDemo.MyTest分别是程序的包名和类名.

 MIDlet-1: MIDlet1,,J2MEDemo.MyTest
        Manifest-Version: 1.0
        MIDlet-Vendor: Vendor
        MIDlet-Version: 1.0.0
        MicroEdition-Configuration: CLDC-1.1
        MIDlet-Name: MyTest
        MicroEdition-Profile: MIDP-2.1

 

修改后保存一下jar(覆盖一下MANIFEST.MF文件)就可以在手机上运行了.

方法二:

以上的方法虽然能解决问题但却没有给出错误产生的真正原因,和如何避免这问题的产生。下面我就给大家详细讲解一下:

在Eclipse中创建J2ME Midlet Suite项目后(假设项目名为cvskillMIDlet,程序的包名和类名为com.cvskill.cvskillMIDlet并且假设此项目生成的jar在手机上也无法运行),在左则PackageExplorer中项目cvskillMIDletr的根目录中会生成一个cvskillMIDlet.jad。双击打开它,你会看到一些如方法一中MANIFEST.MF文件中所示的内容,如下图:


用Eclipse生成的jar文件不能在手机上运行 - cvskill - cv之家

 

现在切换到Midlets选项卡,你会发现无任何内容,如下图:


用Eclipse生成的jar文件不能在手机上运行 - cvskill - cv之家

 现在我直接说我的解决方法,就是单击Add按钮添加一项如方法一中添加的那行内容。添加完后如下图:


用Eclipse生成的jar文件不能在手机上运行 - cvskill - cv之家

 


现在保存一下,再打包生成的jar就可以在手机上运行了,你可以按方法一中的方法检查一下jar中的MANIFEST.MF,会发现文件中缺的那一行已经有了。

错误的原因和如何避免:

现在我给大家说两种创建cvskillMIDlet类的方法,并给出结果你们就知道原因在哪了。

第一种:右击项目根目录cvskillMIDlet选择“New->Class”,之后输入包名,类名,然后完成。最后打开cvskillMIDlet.jad,切换到Midlets选项卡你会发现里面没有一项,必须照上面的方法二自己添加一项才行。

第二种:右击项目根目录cvskillMIDlet选择“New->Other->”,在弹出的对话框中选择“J2ME下的J2ME Midlet”,单击“Next “之后输入包名,类名(注意此处下方有一个可选项“Add to Application Descriptor?”必须打勾),然后完成。最后打开cvskillMIDlet.jad,切换到Midlets选项卡你会发现里面已经有一项了。内容就是第一种方法中我们需要添加的那一项。

两种创建的方法都讲完了,我所大家也就知道错误产生的原因和避免的方法了。

jad文件中的选项还有很多,大家可以仔细研究一下,这里就不多说了。



你可能感兴趣的:(eclipse)