拥有自己的Java代码我正在使用C#调用一些调用(通过JNI)java代码的非托管代码。我使用JNI,因为我需要确保:从C#调用我自己的Java代码#
- 的Java代码将在真正的JVM上运行的能力,而不是在一些.NET VM
- 来连接到虚拟机进行调试的能力(IKVM做“NT支持)
- 我需要免费的解决方案
- 目前的免费解决方案并不适用(例如IKVM)
不管怎样,我的问题是如何管理的最佳方式,这些层之间传递的字符串没有泄漏。 我做这样的事情:
[DllImport(@"MyDll.dll")]
public extern static void receive_message(string receDest, StringBuilder response);
这意味着我分配在托管代码响应的内存。 我想避免这种情况,因为我事先不知道响应的长度。我该如何编写一个适当的方法来为托管代码分配正确的缓冲区而不会泄漏。 JNI代码应该是线程安全的。
有什么建议吗?
感谢,
盖伊
1. JNBridge不是免费的。 2.我不明白我如何配置JVM。 3.在他们的示例中,您需要自己加载JVM(直接调用java) 谢谢, Guy – Guy 2010-01-14 09:08:00
我知道JNI不是免费的。没有看到这是一项要求。你的时间值多少钱? – Cheeso 2010-01-14 09:41:00
+1,建议通过使用套接字在两个进程之间进行通信来保持它简单。 – Mark 2010-01-14 09:53:19