【问题标题】:Problems porting Java to J#将 Java 移植到 J# 的问题
【发布时间】:2009-03-24 17:00:22
【问题描述】:

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

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

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

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

提前致谢, 迈克

【问题讨论】:

    标签: java clr j#


    【解决方案1】:

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

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

    我的一些同事已经成功地将它用于超过 100 万行代码的 Java 代码库。

    【讨论】:

    • 我什至在 Jon Skeet 发布他的答案之前就在搜索这个。但是我今天的谷歌技能很糟糕。 (尝试搜索“将 java 编译为 clr”,然后将其更改为“将 java 编译为 .net”。我没有这个神奇的词。)但是 +1 表示实际有经验。
    • 我怎么没想到呢?根据 为什么 OP 想要在 CLR 中运行,这可能正是问题所在。
    【解决方案2】:

    陷阱:

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

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

    不利的一面是,今后还需要在两个地方进行任何更改。那里肯定有痛苦,但我真的认为使用“普通”.NET 会有更好的体验。

    【讨论】:

      【解决方案3】:

      正如 Jon 指出的那样:J# 已经死了。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-21
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 2011-08-31
        • 2014-06-27
        相关资源
        最近更新 更多