Java コード 1.5 を 1.4 にダウングレードします (ボーナス ポイント:J2ME、ブラックベリー!!!)

StackOverflow https://stackoverflow.com/questions/958366

質問

いくつかの既存の j2se ライブラリを移植したいと考えています (例:Apache Compression libs) を Blackberry 開発に使用しますが、落とし穴があります (1 つだけではありません)。

まず、ほとんどの Java ライブラリは、j2me プラットフォームでは通常欠如している j2se コレクションとデータ型を広範囲に使用しています。しかし、これは、Apache Harmony のようなオープンソースの j2se API 実装のおかげで理論的には解決可能です。さらに大きな問題は、Blackberry JDK が Java 1.4 に基づいていると思われるため、ジェネリックスや Enum などの他の 1.5 機能を使用するコードは、Blackberry では簡単にコンパイルできないことです。

これは、j2me-bastardized バイトコードをサポートしながら、1.5 から 1.4 への自動変換を行う既存のツールやプロジェクトが存在するかどうかという興味深い疑問を引き起こします:)

私が見つけることができたプロジェクトの 1 つは、 レトロウィーバー, しかし、そのプロジェクトがどれほど活発であるかはよくわかりません。

1.5 から 1.4 への自動変換の問題は特別なものではないと思いますが、経験のある人はいますか?

役に立ちましたか?

解決 4

だからここに私はこれまでやってしまったものです:Declawer +列挙クラスを生成するためのいくつかのカスタムコード

Declawer約差別の事は、それは(それがjavacのの文書化されていない機能に依存している)非常にシンプルで、率直に言って、ハッキングのビットだが、増強または変換するJavaバイトコードと比較して、その出力は、実際のJavaコードである、ということです。開発されたとして、それはJ2SEのためであるとして、バイトコードの変更/計装は、J2MEプラットフォームのすべてではありませんが、率直に言って、としてそれはモバイルのJavaベースの開発のために非常に貴重だし、物事は箱の外に道を仕事に行くされていることを単に保証はあります彼らは、これらのツールは、すでにかなりの数の開発者によって使用されているJ2SEをどうます。

Declawerの機能は、(1.5列挙型またはオートボクシングのための愛)制限されていないので、私は、自動的にシンプルな記述子から1.5列挙型と機能的に同等のクラスを生成するPythonスクリプトを追加する必要がありました。この世代は、ビルド時に起こります。

これは私のアプリのために使用することが良いJ2MEフレンドリーIoCコンテナを発見する唯一の例外で、これまでの私の懸念に対処する(あなたはこれらの人を試してみたら、それはそれらを放棄するのは難しいです。)

しかし、それは別のスレッドのための議論だ。

他のヒント

あなたは Retrotranslator してみましたか?私はそれがRetroweaverよりも良い仕事をしていることを読みました。

こちらです 何か他のもの スタックオーバーフローでここを見つけました。

通常の javac でコンパイルし、古い JVM をターゲットにすると、少なくともジェネリックに対して適切なバイトコードが得られます。

それは試してみるのが絶対に意味があります。

私は過去に Retroweaver を使用したことがあります (J2ME ではなく J2SE)。非常にうまく機能しました。これを使用すると、実行時の依存関係がいくつか追加されるため、コストがかかります。

更新 2013-01-28:RetroWeaver で問題が発生した後、私は以下に切り替えました。 レトロ翻訳者.

私が見つけたさらに 2 つのツールを次に示します (Retrotranslator のページからリンクされています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top