将Java移植到J#的问题

时间:2009-03-24 17:00:22

标签: java clr j#

我在java中有一个中等大小(25k行代码,25k行测试)代码库,并希望将其移植到CLR和JVM上运行。

只有主类和一些测试实用程序以任何方式处理文件系统或操作系统。其余代码广泛使用泛型集合API,java.util.regex,java.net(但不是URL或URLConnection),java.io用于charset编码/解码,java.text用于unicode规范化,org.w3c。用于XML操作的dom。

是否有可能在J#和Java下进行大部分代码库编译,然后移植其余代码?

如果是这样,我可能遇到什么样的陷阱?

提前谢谢, 麦克

3 个答案:

答案 0 :(得分:7)

查看IKVM:http://www.ikvm.net/

它允许您在.Net CLR中运行(特别编译的)Java代码。

我的一些同事已成功使用它,其代码库为100万+代码行。

答案 1 :(得分:4)

缺陷:

  • 这样的事情吓到了我。等待发生的非常微妙的错误的数量是巨大的。
  • J#仅支持Java 1.1.4 AFAIK - 再见泛型等。
  • Visual Studio 2008不支持J# - 基本上它是一个死的项目。

我怀疑你实际上发现在C#中重写它更简单(包括学习C#,如果你还不知道它 - 这是一种乐趣)。如果相关的话,你最终会得到一个类似于.NET的类似的库:如果你想让另一个.NET开发人员使用你的代码,他们可能会对“纯粹”感到高兴。 NET项目比使用J#的项目。

缺点是,未来,任何变化都需要在两个地方进行。那里肯定有痛苦,但我真的认为你使用“普通”.NET会有更好的体验。

答案 2 :(得分:3)

Jon指出:J#已经死了。

使用IKVM在.NET上运行(普通)Java代码可能是另一种选择,但是。