我想写一个小小的"helloworld"J2MEMIDlet。在像这样的示例中,javax.microedition.lcdui.*
中的类用于显示输出。当我试图在Eclipse中编译它时,我得到了错误
无法解析导入javax.microedition.lcdui的
我已经安装了JME SDK 3.4,并且我能够运行不导入javax.microedition.lcdui.*的MIDlet。我在哪里读到lcdui可以从无线工具包中获得;Oracle表示,自3.0+起,无线工具包已集成到JME SDK中。
那么为什么Eclipse找不到它呢?
好吧,我想我现在知道答案了。
我回到了关于Using Sample项目的JME SDK 3.4文档页面,创建并运行了UIDemo的一个实例。它使用lcdui类,但运行得很完美——没有关于无法解析javax.microedition.lcdui.*
的错误。
不同之处似乎在于,工作示例使用的库与我最初尝试的库不同。第一个使用org.lipse.mtj.JavaMEContainer/Oracle Java(TM)Platform Micro Edition SDK 3.4/IMPNGDevice1,而工作的则使用org.elipse.mtj.JavaMEContainer/Oracle Java(TM)Platform Micro Edition SDK 3.4/JavaMEhone1。它们包含不同的jar集合,例如,工作的jar包含midp_2.1.jar
,而早期的jar则包含impng_1.0.jar
。
后续的问题可能是,为什么IMP-NG没有lcdui?好吧,那些关注他们正在做的事情的人会读到
此JSR〔针对IMP-NG〕将定义一个J2ME配置文件,目标是希望支持类似于移动信息设备配置文件(MIDP)2.0版的Java运行时环境,但不提供MIDP 2.0所需的图形显示功能的嵌入式网络设备。
信息模块配置文件-下一代(IMP-NG)将是MIDP 2.0的严格子集,其中至少删除了与GUI功能(LCDUI)相关的APIMIDP 2.0中尚未提供的功能是不可预期的,也不可取。">
下一个问题可能是,为什么我在学习教程时最终选择了IMP-NG。。。当我真的想要一个图形化的MIDlet时?但我不确定我是否在乎,现在它起作用了。
在浏览了所有类和包后,我了解到新的me sdk 8.2不提供任何类来开发用户界面。与sdk 3.4不同,后者有许多图形组件。