有没有人有一个好的解决方案可以将一些 C# 代码集成到 java 应用程序中?

代码很小,所以我可以用java重写,但如果可能的话我宁愿重用代码。不要重复自己等等。

另外,我知道我可以将 C# 公开为 Web 服务或其他任何内容,但它有一些安全/加密内容,所以如果可能的话,我宁愿将其紧密集成。


编辑:它将位于基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。

有帮助吗?

解决方案

有一个 IL 到 Java 字节码编译器 蚱蜢 这可能对你有用。但我从未尝试过。

不过我会考虑用 Java 重写你的代码

编辑:请注意,Grasshopper 似乎不再可用。

其他提示

您可以使用 Java 本机接口来调用编译到 DLL 中的 C# 代码。

如果是少量的C#,移植到Java会容易很多。如果数量很多,这可能是一个好方法。

以下是它的高级概述:

http://en.wikipedia.org/wiki/Java_Native_Interface

您的另一个选择是从 C# 代码创建 COM 程序集并使用 J-Interop 来调用它。

http://sourceforge.net/projects/j-interop/

我是作者 jni4网, ,JVM 和 CLR 之间的开源进程内桥梁。它构建在 JNI 和 PInvoke 之上。无需 C/C++ 代码。我希望它能帮助你。

如果它很短,我认为你最好用java重写代码。下载一个 50Mb 的运行时已经够糟糕的了。

我们用了 锦桥 为此,效果很好。它处理 Java->.NET,反之亦然,全部在进程内进行。

如果您不想将 hadle 重写为 进程间通信 并选择以下其中一项:

  • 命名管道
  • 插座
  • 肥皂

如果不是太麻烦的话我会重写它。Web 服务可以工作,但似乎仅仅重用一点代码就会产生大量开销。

http://www.infoq.com/articles/in-process-java-net-integration 建议在同一进程空间中运行 CLR 和 JVM 并来回传递调用。听起来效率很高。我将尝试一下并将其集成到 杰斯 如果效果好的话。

如果它是一段可作为命令行实用程序公开的代码,我只需让其他主机语言使用系统调用来执行该实用程序。

如果您的 C# 应用程序需要调用 Java,请编译一个特殊的 Java main,它采用适当的命令行参数并返回文本输出。

这是最古老、最简单的方法。

您可以通过桥接库调用您的 C# 类(在 dll 中编译),可以使用各种库,每个库都有自己的特点。 锦桥 生成您可以调用来管理 java 类中的代码的代理类。 JCO桥 让您加载 C# 类并使用调用机制从 java 使用它 贾沃内特 让您导入 java 类并使用调用机制调用 java 代码。
所有探索的解决方案都是商业解决方案,允许您通过图形用户界面集成和其他设施从 .NET 调用 java 代码,反之亦然。

链接:
詹布里奇 java-.NET 桥开发者和部署许可证架构,提供 30 天免费试用
杰科布里奇 java-.NET 桥接开发者和部署许可模式,无限试用
贾沃内特 java-.NET 桥接研究和专业许可模式,注册后可享受 30 天无限制试用

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