web-dev-qa-db-ja.com

C#コードをJavaコードに変換するための効果的なツールはありますか?

C#コードをJavaコードに変換するための効果的なツールはありますか?

84
joshjdevl

C#-> Java変換ツールに出会ったことはありません。構文は簡単ですが、フレームワークは劇的に異なります。ツールがあったとしても、私はそれに対して強く助言します。私はいくつかの「移行」プロジェクトに取り組んできましたが、変換は良い選択のように思えますが、変換プロジェクト常に常にマネーピットに切り替えることを強調することはできません。それは近道ではありません。最終的に読みにくいコードであり、ターゲット言語を利用しません。個人的な経験から言えば、書き換えはより安価なオプションであると想定してください。

44
Michael Meadows

C#とJavaの両方で保守する必要があるアプリケーションがあります。この製品を積極的に保守しているため、1回限りのポートはオプションではありませんでした。 Net2JavaとMainsoftツールを調査しましたが、どちらも要件を満たしていませんでした(堅牢性の欠如についてはNet2Java、コストとソースコード変換の欠如についてはMainsoft)。 CS2J という独自のツールを作成しました。このツールは、夜間のビルドスクリプトの一部として実行され、C#コードをJavaに非常に効果的に移植します。現時点では、アプリケーションを翻訳するのには十分ですが、包括的なツールと見なされるまでには長い道のりがあります。同様のニーズを持ついくつかの関係者にこの技術のライセンスを供与し、それを一般に公開するというアイデアをいじっていますが、私たちのコアビジネスは最近忙しすぎています。

28
Mike Rustici

このブログ postTangible からの有用な結果を提案しています。

8
Nick Westgate

MicrosoftからJavaをC#に変換するツールがあります。反対方向については here および here をご覧ください。うまくいきます。C#とJavaは非常によく似ているため、

6
Roger Ween

これは古めかしい質問ですが、xmlVM http://www.xmlvm.org/clr2jvm を見てください。まだ十分に成熟しているかどうかはわかりませんが、今から数年。 XMLvmは、主にAndroid JavaアプリをiPhoneに変換するために作成されましたが、そのXMLコード変換ベースのフレームワークは、他の組み合わせを行うのに十分な柔軟性を持っています(サイト上の図)。

この変換を行う理由については、多分 非常に豊富なossコード を「ハイジャック」して、自分の[Java]プロジェクト内で使用する必要があるかもしれません。

乾杯

リッチ

5
Big Rich

Net2Java を見てみる

4
Pedro C

これらは直接変換しませんが、.NETとJ2EEの間の相互運用性を可能にします。

http://www.mainsoft.com/products/index.aspx

3
scubabbl

C#にはJavaよりも多くの機能があります。デリゲートを例にとると:多くの非常に単純なC#アプリケーションはデリゲートを使用しますが、Java人々はオブザーバーパターンで十分であると考えています。したがって、デリゲートを使用するC#アプリケーションを変換するツールデリゲートの使用からオブザーバーパターンの実装に構造を変換する必要があります。別の問題は、C#メソッドがデフォルトで仮想ではない一方で、Javaメソッドがあります。さらに、Javaにはメソッドを非仮想化する方法がありません。これにより別の問題が発生します。C#のアプリケーションは、Javaに直接変換されない方法でポリモーフィズムを通じて非仮想メソッドの動作を活用できます。あなたはおそらくJavaはC#に変換するツールがたくさんあることに気付くでしょう。Java#===は単純な言語なので、私に火をつけないでください。 C#をJavaに変換するまともなツールはほとんどありません。

長期的に頭痛の種が少なくなるため、JavaからC#への変換へのアプローチを変更することをお勧めします。彼らのサイトに登録すると、Sharpenの使用方法に関する指示を含むこのリンクを表示できます: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(私はしばらくの間彼らに登録されていて、彼らはスパムをしないことについて良いです)

3
Lorentz

これら 人々はこれに対する解決策を持っているようですが、私はまだ試していません。また、コンバータのデモ版もあります。

3
Guven Demir

C#をJavaに変換することで何をしようとしているのかわかりませんが、.netの相互運用性が必要な場合は、チェックアウトすることをお勧めします Mono

1
karlipoppins

構文はほぼ同じですが、異なるフレームワークに依存しているため、変換する唯一の方法は、両方の言語を知っている人を取得してコードを変換することです:)あなたの質問への答えはありませんJavaへ

1
Hannoun Yassir

これはカフから外れていますが、それは Grasshopper の目的ではありませんか?

1

おそらく、代わりに jni4net-opensource bridge を使用できますか?または その他のオプション のリストは知っています。

1
Pavel Savara