有没有什么好的方法将一些C#代码集成到Java应用程序中?
这段代码很短,所以我可以重写成Java,但如果可能的话,我宁愿重用这段代码。不要重复自己等。
另外,我知道我可以将C#公开为Web服务或其他形式,但其中包含一些安全/加密内容,因此如果可能的话,我宁愿将其紧密集成。
编辑:它将成为基于服务器的应用程序,因此“下载”另一个运行时是无关紧要的。
有没有什么好的方法将一些C#代码集成到Java应用程序中?
这段代码很短,所以我可以重写成Java,但如果可能的话,我宁愿重用这段代码。不要重复自己等。
另外,我知道我可以将C#公开为Web服务或其他形式,但其中包含一些安全/加密内容,因此如果可能的话,我宁愿将其紧密集成。
编辑:它将成为基于服务器的应用程序,因此“下载”另一个运行时是无关紧要的。
您可以使用Java本地接口调用编译为DLL的C#代码。
如果只有少量的C#代码,将其移植到Java会更加容易。如果代码很多,这可能是一个不错的选择。
以下是它的高级概述:
你的另一个选择是从C#代码创建一个COM程序集,并使用J-Interop来调用它。我是 jni4net 的作者,它是一种基于 JNI 和 PInvoke 构建的开源进程内桥接器,用于连接 JVM 和 CLR。无需使用 C/C++ 代码。我希望它能对您有所帮助。
您可以通过桥接库调用编译为dll的c#类,有各种不同的库可供选择,每个库都有其特点。 JNBridge 生成代理类,您可以调用这些类来管理java类中的代码。 JCOBridge 让您加载c#类并使用调用机制从java中使用它,而javonet则让您导入java类并使用调用机制调用java代码。
所有探索过的解决方案都是商业解决方案,可让您在.NET和Java之间调用代码,并具有图形用户界面集成和其他便利功能。
链接:
jnbridge java-.NET桥接开发人员和部署许可证模式,提供30天免费试用
jcobridge java-.NET桥接开发人员和部署许可证模式,提供无限试用
javonet java-.NET桥接研究和专业许可证模式,注册后提供30天无限试用
http://www.infoq.com/articles/in-process-java-net-integration建议在同一进程空间中运行CLR和JVM,并来回传递调用。听起来非常高效。如果它能够良好地工作,我将尝试将其集成到Jace中。
如果不麻烦的话,我会重写它。 网络服务可以工作,但似乎这样做会增加很多开销,只是为了重用一点代码。