簡體   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