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

时间:2008-09-17 01:04:21

标签: java c# code-translation

是否有将C#代码转换为Java代码的有效工具?

14 个答案:

答案 0 :(得分:43)

我从未遇到过C# - > Java转换工具。语法很简单,但框架却截然不同。即使有工具,我也会强烈反对。我已经参与了几个“迁移”项目,并且不能说明转换似乎是一个不错的选择,转换项目始终总是转入金钱坑。它不是捷径,你最终得到的代码是不可读的,并没有利用目标语言。从个人经验来讲,假设重写是更便宜的选择。

答案 1 :(得分:27)

我们需要在C#和Java中维护一个应用程序。由于我们积极维护此产品,因此不能选择一次性端口。我们调查了Net2Java和Mainsoft工具,但都没有达到我们的要求(Net2Java缺乏稳健性,Mainsoft因为成本和源代码转换不足)。我们创建了一个名为CS2J的工具,它作为我们每晚构建脚本的一部分运行,并为Java提供了一个非常有效的C#代码端口。现在,它恰好足以翻译我们的应用程序,但在被视为一个综合工具之前还有很长的路要走。我们已经将这项技术授权给了一些有类似需求的政党,我们正在考虑公开发布它的想法,但我们的核心业务让我们现在太忙了。

答案 2 :(得分:8)

此博客post提供了来自Tangible的有用结果。

答案 3 :(得分:6)

Microsoft提供了一个将java转换为C#的工具。对于相反的方向,请查看herehere。如果这不成功,手动转换源不需要太长时间,因为C#和java非常相似,

答案 4 :(得分:5)

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

至于进行此转换的原因,可能需要“劫持”某些highly abundant oss code并在他/他们自己的[Java]项目中使用它。

干杯

答案 5 :(得分:4)

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

答案 6 :(得分:3)

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

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

答案 7 :(得分:3)

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

我建议您改变从Java转换为C#的方法,因为从长远来看,它会减少麻烦。 Db4Objects最近发布了他们用于将Db4o转换为C#的公共内部工具。它被称为锐化。如果您在他们的网站上注册,您可以查看此链接以及如何使用Sharpen的说明: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(我已经在他们身上注册了一段时间,并且他们不善于发送垃圾邮件)

答案 8 :(得分:3)

These家伙似乎已经有了解决方案,但我还没有尝试过。他们还有转换器的演示版本。

答案 9 :(得分:1)

我不确定您希望将C#转换为java,但是如果它是您需要的.net互操作性,那么您可能需要查看Mono

答案 10 :(得分:1)

这是关闭袖口,但不是Grasshopper的用途吗?

答案 11 :(得分:1)

嗯,语法几乎相同,但它们依赖于不同的框架,所以转换的唯一方法是让某人知道这两种语言并转换代码:)你的问题的答案是没有没有“有效”的工具将c#转换为java

答案 12 :(得分:1)

可能您可以使用jni4net - opensource bridge代替? 或者我知道的other options列表。

答案 13 :(得分:-2)

为什么不在Haxe(http://haxe.org/)中编写并将其转换为您想要的任何内容?