2009-05-03 11 views
1

私は両方ともJava & .NETから使用したい小さな(約2000行のコード)クラスを持っています。これを行うにはいくつかの方法があります。クラスをサービスとしてラップするか、相互運用するブードゥーを使用するか、C#& javaにコードを複製します。C# - > Javaコードジェネレータ

後者を実現するすぐに使用できるツールを知っていますか?シンプルなC#クラスを継承なしに使用し、同等のJavaクラスに変換しますか?

答えて

2

小さい(実際には大きければ)機械的な翻訳ツールの知恵はわかりません。私は決してそれらに多くの喜びを感じたことはありません。しかし、1つのオプションは、J#で.NETコードを書くことです。

しかし私はそれが私であれば手動で両者を手動で移植し、別々に保守することを強調しました。ほとんどの場合、違いは巨大な署名バイトやボクシングの違いなどではありません。もちろん、デリゲートを持つものは変更する必要があり、キャプチャされた変数は異なるやり方などがあります。

+0

私はJ#とJavaのサブセットでコードを書いていますが、それは一種のものですが、動作します。 J#はサポートされなくなりました(または、拡張されたサポートで、覚えていません)。たとえば、Visual Studio 2008にはインテリジェンスがありません。 – ya23

3

IKVM.NET jarファイルを作成し、管理された.NETアセンブリにコンパイルします。

+0

逆の場合はどうしますか? C#アセンブリ - > Javaコード? – deostroll

0

以前はCOMブリッジを使用していましたが、regasm.exeまたはVisual StudioでCOMで使用するためにC#アセンブリを登録することができます。

0

これは本当にあなたが求めているものではありませんが、私は単純なC#からJavaのトランスレータを作成します。

違いはあまり巨大ではないので、ソースの作成者のように見えるので、翻訳が難しい厄介な構文を避けることができます。そうすれば、翻訳者は非常に簡単になります。 C#はより表現力豊かで、JavaのほとんどすべてのC#関数をエミュレートできますので、C#からJavaに移行します。

実際にはcs2javaと思われます。

+0

構文が似ていても、トランスレータを書くのは簡単ではありません。デリゲート/イベント、ラムダ関数、拡張メソッドなどのJavaには欠けている機能がいくつかありますが、フレームワーク間には多くの矛盾があります。そのすべてを翻訳するのは簡単ではありません。 – Spoike

+1

が間違っている - 代理人やネットのエキストラ(プロパティ、イベントなど)の可能性がありますjavaのより多くのキーストロークを取る何かの構文的な砂糖です。シーンの背後では、コンパイラはほとんどの場合、仕事を完成させるためにタイプなどを総合的に生成します。 –

0

これは私が知っているtoolsのリストです。 Sharpenまたはj2cstranslatorは良いオプションのようです。

関連する問題