繁体   English   中英

J2ME java 1.6

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM