我想移植一些现有的 j2se 库(例如Apache 压缩库)用于 Blackberry 开发,但有一个问题(而且不仅仅是一个)。

首先,大多数 java 库广泛使用 j2se 集合和数据类型,这些集合和数据类型通常在 j2me 平台上缺失 - 但由于 Apache Harmony 等开源 j2se api 实现,这在理论上是可以解决的。更大的问题是,Blackberry JDK 似乎基于 java 1.4,因此任何使用泛型和其他 1.5 功能(如枚举)的代码都无法在 Blackberry 上轻松编译。

这就提出了一个有趣的问题,即是否有任何现有工具或项目可以进行自动 1.5->1.4 转换,同时支持 j2me-bastardized 字节码:)

我找到的一个项目是 复古编织者, ,但我不太确定该项目有多活跃。

我确信 1.5->1.4 自动转换的问题并不是唯一的 - 那么有人有这方面的经验吗?

有帮助吗?

解决方案 4

因此,这里是我结束了到目前为止做:Declawer +枚举类生成一些自定义代码

一个约Declawer分化的是,虽然这是非常简单的,坦率地说,一个黑客位(它依赖于JAVAC的一个未记录的能力)的,它的输出是相比于增强或转换Java字节码实际的Java代码。这对于移动基于Java的开发非常珍贵的,坦率地说,字节码修改/仪器仪表是不是所有为J2ME平台上开发的,因为它是J2SE,并有刚不能保证事情会开箱的方式他们这样做与J2SE当这些工具已经使用相当多的开发者。

Declawer的功能是有限的(1.5枚举或自动装箱没有爱),所以我不得不添加一个Python脚本自动生成等效于功能的类,从简单的描述符1.5枚举。这一代发生在编译时间

这解决了我的顾虑,到目前为止,与找到一个很好的J2ME友好的IoC容器来使用我的应用程序的唯一例外(一旦你尝试这些家伙,它是如此难以放弃它们。)

但是,这对于不同的线程的讨论。

其他提示

您是否尝试过 Retrotranslator ?我读了它确实比的Retroweaver做得更好。

这里的 别的东西 我在这里找到上堆溢出:

编制与定期javac和针对一个旧的JVM会给你适当的码仿制药至少

这绝对意义的尝试。

我过去使用过 Retroweaver(J2SE,不是 J2ME)——它工作得非常好。使用它的成本是一些额外的运行时依赖项。

更新2013-01-28:在使用 RetroWeaver 遇到问题后,我转而使用 复古翻译器.

这里有两个更多的工具,我发现(链接到从Retrotranslator的页):

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top