C# コードを Java コードに変換する効果的なツールはありますか?
14 に答える
C#->Java 変換ツールに遭遇したことはありません。構文は簡単ですが、フレームワークは劇的に異なります。ツールがあったとしても、私は強くお勧めしません。私はいくつかの「移行」プロジェクトに携わってきましたが、変換は良い選択のように思えますが、変換プロジェクトは常にお金の落とし穴になるとは言えません。それは近道ではありません。最終的にはコードが読めなくなり、ターゲット言語を利用できなくなります。個人的な経験から言えば、書き直しが安価なオプションであると仮定します。
C# と Java の両方で維持する必要があるアプリケーションがあります。私たちはこの製品を積極的に保守しているため、1 回限りの移植はオプションではありませんでした。Net2Java と Mainsoft ツールを調査しましたが、どちらも要件を満たしていませんでした (堅牢性の欠如については Net2Java、コストとソース コード変換の欠如については Mainsoft)。CS2Jという独自のツールを作成しました。これは夜間のビルド スクリプトの一部として実行され、C# コードを Java に非常に効果的に移植します。現時点では、アプリケーションを翻訳するには十分ですが、包括的なツールと見なされるまでには長い道のりが必要です. 私たちは同様のニーズを持ついくつかの関係者に技術のライセンスを供与しており、それを公開するというアイデアをいじっていますが、私たちのコアビジネスは最近私たちを忙しくさせています.
これらの人はこれに対する解決策を持っているようですが、私はまだ試していません. また、コンバーターのデモ版もあります。
これは古い質問ですが、xmlVM http://www.xmlvm.org/clr2jvmを見てください。数年前から存在していますが、まだ十分に成熟しているかどうかはわかりません。XMLvm は、主に Android Java アプリを iPhone に変換するために作成されたと思いますが、その XML コード変換ベースのフレームワークは、他の組み合わせにも柔軟に対応できます (サイトの図を参照)。
この変換を行う理由としては、非常に豊富な oss コードの一部を「ハイジャック」して、自分の [Java] プロジェクト内で使用する必要があるかもしれません。
乾杯
リッチ
Net2Javaを調べてみてくださいC# から Java への自動 (または少なくとも半自動) 変換のための最良のオプションのように思えます
それらは直接変換しませんが、.NET と J2EE 間の相互運用性を可能にします。
C# には、Java よりもいくつかの機能があります。デリゲートを例にとると、非常に単純な C# アプリケーションの多くはデリゲートを使用しますが、Java 関係者はオブザーバー パターンで十分だと考えています。したがって、デリゲートを使用する C# アプリケーションをツールで変換するには、構造をデリゲートの使用からオブザーバー パターンの実装に変換する必要があります。もう 1 つの問題は、C# メソッドは既定で仮想ではなく、Java メソッドは仮想であるという事実です。さらに、Java にはメソッドを非仮想にする方法がありません。これにより、別の問題が発生します。C# のアプリケーションは、Java に直接変換されない方法でポリモーフィズムを介して非仮想メソッドの動作を利用する可能性があります。周りを見回すと、Java を C# に変換するためのツールがたくさんあることがわかるでしょう。Java はより単純な言語だからです (使用しないでください)。私を怒らせてください、私はもっと悪く言ったのではなく、もっと簡単に言いました); ただし、C# を Java に変換する適切なツールがあったとしても、ごくわずかしか見つかりません。
長期的には頭痛の種が少なくなるため、Java から C# に変換するアプローチを変更することをお勧めします。Db4Objects は最近、Db4o を C# に変換するために使用する社内ツールを公開しました。シャープンといいます。彼らのサイトに登録すると、Sharpen の使用方法に関する説明が記載されたこのリンクを表示できます: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen
(私は彼らにしばらく登録していて、彼らはスパム行為をしないことに長けています)
代わりにjni4net - opensource bridgeを使用できますか? または私が知っている他のオプションのリスト。
C# を Java に変換して何をしようとしているのかはわかりませんが、.net の相互運用性が必要な場合は、Monoをチェックしてみてください。
構文はほぼ同じですが、異なるフレームワークに依存しているため、変換する唯一の方法は、両方の言語を知っている人を取得してコードを変換することです:)あなたの質問に対する答えは、c#を変換する「効果的な」ツールはありません. Javaへ
これはカフから外れたものですが、 Grasshopperはそのためのものではありませんか?