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

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

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

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

预先感谢迈克

有帮助吗?

解决方案

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

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

我的一些colleages已100万+行代码的Java代码库成功地使用它。

其他提示

陷阱:

  • 任何像这样的事情都会让我害怕。等待发生的真正微妙的错误数量是巨大的。
  • J# 仅支持 Java 1.1.4 AFAIK - 再见泛型等。
  • Visual Studio 2008 不支持 J# - 基本上它是一个死项目。

我怀疑您实际上会发现用 C# 重写它会更简单(包括学习 C#,如果您还不知道它 - 这是一种乐趣)。如果相关的话,您最终也会得到一个更惯用的类似 .NET 的库:如果您希望另一位 .NET 开发人员使用您的代码,他们可能会更喜欢“纯”.NET 项目而不是使用 J# 的项目。

缺点是,今后任何更改都需要在两个地方进行。这当然很痛苦,但我真的认为使用“普通”.NET 会获得更好的体验。

正如乔恩指出:J#是相当死

使用 IKVM 可能的替代运行在.NET您的(正常)的Java代码,“虽然。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top