J2ME 异常: java.lang.ClassNotFoundException : Midlt

我用MyEclipse 9 写的手机游戏,打包后得到的jar 和jad 格式的文件,在电脑上运行Jad 文件时,在出来的手机模拟器屏幕上显示:
Midlt, MIdlt
异常: java.lang.ClassNotFoundException : Midlt
问这是为什么?
还有,我用MyEclipse 9 写手机游戏,怎样才能让游戏在塞班平台上运行?

需要修改jad文件,看看MIDlet-JAR-URL选项中的字符串是不是你的Midlet类所在的路径。注意,此路径必须是完整路径,即如果有包的话,路径上必须加上包名。比如,你的Midlet在包game下,那么就要在MIDlet-JAR-URL写入:game.Midlet而不是Midlet,如果没有包的话才可以直接写Midlet。

你的问题十有八九出在这里。如果还是不行,你安装一个WTK,然后新建一个工程,把你的代码的资源拷贝到WTK中,用WTK的打包功能,在bin目录找到你想要的JAR文件,这样打出来的包就不会有问题(而且SP通常都要求实用WTK打包)。

还有一个办法,就是用类似JGZ这种专门生成jad的工具,把你的jar文件拖到图标上,自动生成一个jad出来,也不会有问题。

PS:你用什么模拟器啊?塞班平台有专用的模拟器,可以直接运行jar的。比如经典的60模拟器Series_60_MIDP_Concept_SDK_Beta_0_3_Nokia_edition,176x208的屏幕,只要这里能运行,手机都可以运行。追问

怎样修改jad文件?MIDlet-JAR-URL在哪? 是不是MyEclipse 9中双击deployed 中的 xx.jad ? MIDlet-JAR-URL显示的是 项目名.jar
MIDlet类 在项目默认包里。。也就是说,我建完项目后,直接在 src 中建的MIDlet 类, 然后还有一个常用工具包 Until 包, 还在res 中见了两个类 Image类 和Sounds类。
还有。我用的模拟器 是WTK 中自带的模拟器,并没有专门安装塞班的模拟器。想要在塞班平台上运行的话,必须要安装塞班的模拟器么?

追答

1、不要在MyEclipse中修改,你的工程打包完毕后,会生成一个jad文件和一个jar文件(bin目录中),直接用记事本打开修改就可以了,不过系统自带的记事本经常会搞一些乱码进去,所以建议你使用EditPlus等工具。

2、以Jad中的内容为准,不要管MyEclipse中怎么显示。既然你是直接在src文件夹中建立的MIDlet 类,那么直接用(MIDlet类名.jar),而不是项目名.jar,除非你的MIDlet类名和项目名完全一样。

3、塞班的模拟器主要是真实,比WTK自带的要更贴近于手机,出的错误跟真机一样,便于调试。

追问

用UltraEdit打开Jad 文件
MIDlet-Version: 1.0.0
MIDlet-Vendor: Midlet Suite Vendor
MIDlet-Jar-URL: L_QiLZ.jar 把这个改成 Medile.jar?
MicroEdition-Configuration: CLDC-1.1
MIDlet-1: Midlt,,Midlt
MicroEdition-Profile: MIDP-2.1
MIDlet-Jar-Size: 1763987
MIDlet-Name: L_QiLZ Midlet Suite改完运行报错
com.sun.kvem.midletsuite.InvalidJadException: Reason = 36
Error in opening jar file: Medile.jar

追答

以下是SP给CP提交的注意事项中的内容,给你参考一下。(好多年没弄ME了,记忆有点混乱,不好意思。)

Jad内容设定说明:
MIDlet-1: SpiderChess, /icons/icon.png, MugeGame.MugeMIDlet
MIDlet-Icon: /icons/icon.png
MIDlet-Jar-Size: 62581
MIDlet-Jar-URL: spider_s60_v3_tw_cht.jar
MIDlet-Name: SpiderChess  游戏名称,記得MIDlet Name中不能有空格
MIDlet-Vendor: GlamorPhoenix  公司名称
MIDlet-Version: 1.0

你的jad文件里,MIDlet-Jar-URL一项不用改,要改MIDlet-1后面那个值,改成与你现在的midlet类的名称。注意:尽量使用一个明显不同的类名,而不是只有大小写不同的名称,因为手机在读取的时候,有时候会忽略大小写的问题。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-09
找不到类
第2个回答  2011-08-09
你打包的时候的设置 jad文件的
而且好像都是运行jar的吧 ,
反正我打包玩了 直接就是运行jar就行了
塞班平台 完全直接ME 只要你的程序没问题
就能直接装到塞班的手机上 一般都是安装jar的
相似回答
大家正在搜