[英]J2ME with java 1.6
我正在使用 CLDC 1.1 + MIDP 2.0。 “编译器合规级别”设置为 1.4。
当我将“Compiler compliance level”设置为 1.6 时,出现以下错误:“ALERT: java/lang/ClassFormatError: Bad version information.”。
如何将 java 1.6 与 J2ME 一起使用?
如何在J2ME中使用Java 1.6?
你不能
核心原因 :J2ME适用于内存和CPU限制最大的移动设备。
Java ME 是 Java 的子集,大部分 ME 特定代码将主要驻留在客户端上,因此您不需要任何特殊版本的 Java 来编译程序。
这里的问题是您使用的 Java 编译器版本在电话发明时并不存在。 Java编译器的版本写入.class编译output。
理想情况下,您将使用旧版本 Java 编译项目,但很难安装旧版本。 所以我们可以自己充当编译器,手动将.class output 文件中的版本设置为我们想要的版本,并且要保证不使用该版本之后的特性。 在这种情况下,我们将以 1.2 版为目标。
您可以使用编译器的 -source 和 -target 选项来禁止尽可能多的功能,但许多 javac 编译器对它们可以定位的旧版本有限制,我的 Java 9 (1.9) 可以 go 低至 1.6。 您将需要手动确保您没有使用 1.2 和 1.6 之间引入的功能
a.class 文件中的前 4 个字节是臭名昭著的“CAFEBABE”魔术字符串。 字节 5 和 6 通常为 0 字节 7 和 8 是 java 次要版本和主要版本。
将字节 8 更改为 0x2E。 根据https://en.wikipedia.org/wiki/Java_class_file这对应于版本 1.2 或 Java2。
我们正在使用 Java2,因为正如您在其首字母 J2ME 中看到的那样,Micro Edition 于 Java 2 发布。因此,出于向后兼容性的原因,您可以相当确信手机将运行此类应用程序。 如果您需要Java版本之后推出的功能,就不断增加版本号,直到再次失败,才能找到您手机支持的Java的确切版本。
您不能使用它,因为它与SE和EE版本不兼容
最新的适用于j2me 3.0的 SDK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.