2009-05-03 56 views
1

我有一个小的(〜2000行代码)类,我想从两个java & .NET中使用。有几种方法可以做到这一点 - 其中包括将类作为服务包装,使用一些interop voodoo,或者将代码复制到C#& java。C# - > Java代码生成器

你知道一个彻头彻尾的现成工具,完成后者 - 需要一个简单的C#类,没有依赖关系,并将其转换为等效的java类?

回答

2

如果是小(或事实上,即使是大的),我不知道的机械翻译工具的智慧;我从来没有与他们很多的快乐。但是,一种选择是在J#中编写.NET代码。

但我强调 - 如果是我,我会手动在两者之间手动移植它并分开维护它们。大多数情况下,差异不是很大 - 有符号的字节,拳击差异等。当然,代表的任何事情都需要改变 - 捕获的变量工作方式不同,等等等。

+0

我们在J#和Java的子集中编写代码,它很丑,但很有用。请注意,J#不再支持(或延伸支持,不记得)。例如,Visual Studio 2008对它没有理解力。 – ya23 2009-05-03 10:16:56

3

IKVM.NET做得很好一个jar文件并将其编译为托管的.NET程序集。

+0

你对此做了什么? C#程序集 - > Java代码? – deostroll 2015-07-15 12:24:36

0

曾经有一个COM桥接器,您可以在regasm.exe或visual studio中注册C#程序集以便在COM中使用。

0

这不是你要求的,但我只是创建一个简单的C#Java解释器。

的差异不是很大,你似乎是源的作者这样就可以避免讨厌的结构是相当困难的翻译。这样你的翻译会很简单。我将从C#转到Java,因为C#更具表现力,您可以模拟Java中几乎所有的C#函数。

其实cs2java似乎就是这样做的。

+0

即使他们在语法上相似,编写翻译也不是那么简单。 Java中缺少一些功能,比如委托/事件,lambda函数和扩展方法,以及框架之间存在很多差异。翻译所有这些并不是微不足道的。 – Spoike 2009-05-03 09:34:32

0

这是我知道的tools的列表。锐化或j2cstranslator看起来像不错的选择。