有没有一种有效的工具将C#代码转换为Java代码?

有没有一种有效的工具将C#代码转换为Java代码?

我从来没有遇到过C# – > Java转换工具。 语法很简单,但是框架却大不相同。 即使有工具,我也会强烈反对。 我曾经在几个“移民”项目上工作过,不能够强调地说,在转换看来是一个不错的select的时候,转换项目总是总是转向钱坑。 这不是一个快捷方式,你最终得到的代码是不可读的,并没有利用目标语言。 从个人经验来讲,假设重写是更便宜的select。

我们有一个我们需要在C#和Java中维护的应用程序。 由于我们积极维护此产品,一次性端口不是一个选项。 我们调查了Net2Java和Mainsoft工具,但都没有达到我们的要求(Net2Java缺乏稳健性,Mainsoft的成本和缺乏源代码转换)。 我们创build了我们自己的叫做CS2J的工具,它作为我们夜间构build脚本的一部分运行,并且将我们C#代码的一个非常有效的端口转换为Java。 现在,翻译我们的应用程序已经足够好了,但在被认为是一个全面的工具之前还有很长的路要走。 我们已经将这项技术授权给了一些需求相似的团体,我们正在公开发布这个想法,但是我们的核心业务让我们这些日子太忙了。

这篇博客文章提出了有价值的有用结果。

有一个来自微软的转换Java到C#的工具。 相反的方向看看这里和这里 。 如果这不起作用,手动转换源代码应该不会太长,因为C#和java非常相似,

虽然这是一个古老的问题,但看看xmlVM http://www.xmlvm.org/clr2jvm ,我不确定它是否足够成熟,尽pipe它已经存在好几年了。 我相信,XMLvm主要是为了将Android Java应用程序翻译成iPhone,然而,其基于XML代码转换的框架足够灵活,可以进行其他组合(参见网站上的图表)。

至于做这种转换的原因,也许有必要“劫持”一些高度丰富的oss代码 ,并在他/他们自己的[Java]项目中使用它。

干杯

丰富

他们不直接转换,但它允许.NET和J2EE之间的互操作性。

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

C#比Java有更多的function。 以代表为例:许多非常简单的C#应用​​程序使用委托,而Java人认为观察者模式是足够的。 因此,为了使工具转换使用委托的C#应用​​程序,它必须将使用委托的结构转换为观察者模式的实现。 另一个问题是,在Java方法中,C#方法在缺省情况下不是虚拟的。 另外,Java没有办法让方法变成非虚拟的。 这就产生了另一个问题:C#中的应用程序可以通过多态性利用非虚拟方法行为,而不是直接转换成Java。 如果你环顾四周,你可能会发现有很多工具可以将Java转换为C#,因为它是一种更简单的语言(请不要激怒我,我没有说更糟糕,我说简单些); 但是,如果有任何将C#转换为Java的体面工具,您将会发现很less。

我build议改变你从Java转换到C#的方法,因为从长远来看,它会减less麻烦。 Db4Objects最近发布了他们用来将Db4o转换成C#的内部工具。 它被称为锐化。 如果你注册他们的网站,你可以查看这个链接,指导如何使用锐化: http : //developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(我已经注册了他们一段时间,他们不擅长垃圾邮件)

尝试看看Net2Java在我看来,从C#到Java自动(或半自动)转换的最佳select

这些家伙似乎有这个解决scheme,但我还没有尝试过。 他们也有转换器的演示版本。

这是closures的,但不是蚱蜢是什么?

我不确定你想把C#转换成java,但是如果你需要.net的互操作性,你可能想查看Mono

那么语法几乎相同,但他们依靠不同的框架,所以唯一的方法来转换是通过让一个谁知道这两种语言和转换代码的人:)你的问题的答案是没有“有效的”工具来转换C#到java

可能你可以使用jni4net – 开源桥梁呢? 或者我知道的其他选项列表。

为什么不把它写在HAXE( http://haxe.org/ )中并将其转换为你想要的?