将Java与C#.net集成

3
以下事情可能是可行的吗?如果是,怎么做呢? 我已经用Java实现了一些核心功能。现在我想为它创建一个GUI界面。 我发现使用Swing在Java中创建GUI很困难。我可以轻松地在C#.net中构建GUI。 所以我在想是否可能在Java中创建一个库,我可以从我的C#代码中访问它。 简而言之:我的Java代码将提供一些API,然后我的C#程序必须能够调用这些API。 我该怎么做?

我发现使用WinForms非常糟糕,而Swing也几乎一样糟糕。话虽如此,如果在.NET中GUI如此容易,在Java中却如此困难,那么区别在哪里呢?也许解决这个问题可以帮助UI开发(尽管这避免了问题)。 - user166390
4个回答

6
假设您已经正确地构建了Java代码,创建Web Service桥接器可能是可行的方法。例如,您可以通过SOAP公开Java API,并使C# UI依赖于它。
当然,这种解决方案的好处是,如果您以这种方式进行操作,您可以随时完全替换UI;缺点是,您必须在如Servlet容器等上下文中单独运行Java部分,这可能对您的需求来说相当笨重。

3

取决于您的Java库做什么以及它是否使用许多第三方组件,但是由于IKVM,您可以将一个jar文件编译为.NET程序集。我已经成功地将xhtmlrenderer java库合并到C#应用程序中,采用了这种方法。


2

是的,这是可能的。

看一下JNBridge:http://www.jnbridge.com/

但说实话,我认为最好重写你的APIs在.Net中。最终来看会更容易。我更喜欢在一个环境中工作,而不必在不同的地方维护东西。


我赞同用C#重写API的想法。你的想法充满了潜在的测试和维护问题。 - northpole

1

你考虑过使用Web服务吗?你也可以使用类似以下的方式执行Java程序:

private void calljava(object ob,EventArgs arg)
    {
        Process.Start("j.bat");
    }

还有JNBridge

只是一些想法...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接