Java me J2ME平台的JVM语言

Java me J2ME平台的JVM语言,java-me,jvm-languages,xtend,mirah,Java Me,Jvm Languages,Xtend,Mirah,我目前正在为J2ME环境编写一个嵌入式应用程序(CLDC1.1配置和IMP-NG配置文件)。由于被基于JVM的语言(Groovy、Scala、Clojure等等)中所有这些新特性所破坏,我正在考虑在我的代码中使用其中一种 然而,上述大多数语言都需要相当好的JVM环境。大多数所谓的“动态”语言要求VM具有反射。许多人要求注释支持。以上特性在J2ME下都不可用 从我发现的情况来看,它看起来是一个可行的选择,因为它的编译器输出纯Java,而不是字节码,并且不需要任何库来满足运行时的需要。当然,生成的J

我目前正在为J2ME环境编写一个嵌入式应用程序(CLDC1.1配置和IMP-NG配置文件)。由于被基于JVM的语言(Groovy、Scala、Clojure等等)中所有这些新特性所破坏,我正在考虑在我的代码中使用其中一种

然而,上述大多数语言都需要相当好的JVM环境。大多数所谓的“动态”语言要求VM具有反射。许多人要求注释支持。以上特性在J2ME下都不可用

从我发现的情况来看,它看起来是一个可行的选择,因为它的编译器输出纯Java,而不是字节码,并且不需要任何库来满足运行时的需要。当然,生成的Java代码也必须满足一些要求,但Xtend网页在这方面看起来很有希望:

Xtend只做类,其他什么都不做

Java中的接口定义已经很好且简洁。他们有一个不错的默认可见性,而且在其他领域也没有什么可以改进的。考虑到能够处理这些文件的所有知识和强大工具,没有理由以不同的方式定义它们。这同样适用于枚举和注释类型

这就是为什么Xtend只能做类,并且依赖于Java中定义的接口、注释和枚举。Xtend并不是要取代Java,而是要使之现代化

我说的对吗?有可能为J2ME平台编译Xtend生成的代码,或者有一些构造在那里不起作用

或者,您可以推荐任何其他可以在J2ME上运行的“丰富”Java修改语言吗


更新:知道作为另一源代码生成结果的“编译器”称为transcompiler,也可以找到一种不需要运行库和特定Java功能的工具。

Xtend生成的代码大量使用google guava。如果这与J2ME兼容,那么Xtend可能是您选择的语言。我不知道有什么可以阻止在提供专用开发工具包的其他平台(如Android)上使用它。

除了能够生成Java源代码之外,Mirah最近还增加了对javac的--bootclasspath选项的支持,它允许您根据java核心类的非标准版本生成字节码,例如LeJOS


它仍然有点新鲜,但如果有更多的人在不同的Java上使用它,那就太好了。

好吧,那可能是个问题。。。Guava将自己标榜为“用于Java 1.6+的Google核心库”:(