从Java调用C#代码?
有没有人有一个很好的解决方案,将一些C#代码集成到Java应用程序中?从Java调用C#代码?
代码很小,所以我可以用java重写,但如果可能的话,我宁愿重复使用代码。不要重复自己,等等。
此外,我知道我可以公开C#作为一个Web服务或任何,但它有一些安全/加密的东西在那里,所以我宁愿保持紧密集成,如果可能的话。
编辑:它将在一个基于服务器的应用程序,所以“下载”另一个运行时是无关紧要的。
草斗链接被破坏。 – 2016-12-28 22:46:45
可能不再可用 – 2016-12-29 11:00:41
如果它很短,我认为你最好用java重写代码。下载一个50Mb的运行时间已经够糟糕的了。
我会重写它,如果它不是太麻烦。 Web服务可以正常工作,但似乎只是重用一小段代码会带来很多开销。
您将使用Java Native Interface调用编译为DLL的C#代码。
如果只有少量的C#,将它移植到Java会容易得多。如果它很多,这可能是一个很好的方法来做到这一点。
这里是它的一个高级别概述:
http://en.wikipedia.org/wiki/Java_Native_Interface
你的其他选择是创建一个从C#代码中的COM组件,并使用J-互操作来调用它。
http://www.infoq.com/articles/in-process-java-net-integration建议在相同的进程空间中运行CLR和JVM并来回传递调用。这听起来非常有效。如果它运作良好,我会尝试将它整合到Jace中。
如果它是一段可作为命令行实用程序暴露的代码,我只是让其他主机语言使用系统调用来执行该实用程序。
如果您的C#应用程序需要调用Java,请编译一个特殊的Java主程序,它将采用适当的命令行参数并返回文本输出。
它是最古老,最简单的方法。
如果它的Server Based,平台是什么?我不知道COM互操作与Mono有什么关系,所以这是另一个需要考虑的因素。 – FlySwat 2008-09-08 19:10:51