【发布时间】:2012-12-22 01:48:15
【问题描述】:
我有一个 C/C++ 应用程序,它在 Unix 的共享内存中写入数据。现在我想通过使用 Java 的程序读取共享内存数据。
程序应该读取共享内存数据。可以吗?
如果可能的话,需要一个小的实现。
【问题讨论】:
-
仅通过 JNI 才能读取共享内存——在 Java 中你不能这样做。我对 JNI 的体验是,一些 JNI 插件使原本坚如磐石的 Java VM 崩溃。那么也许另一种解决方案是可能的?
-
这个答案stackoverflow.com/a/1492536/1741542 谈论内存映射文件和 NIO FileChannel。也许这也适合你。
-
如果您将从数据的持久性中受益(即使是出于调试目的),您可以考虑内存映射文件。这是一个使用纯 Java github.com/peter-lawrey/Java-Chronicle 的实现
-
@luukes 你确定使用Java程序我们不能读取c++程序写的共享内存数据吗?我们必须在两者之间使用 JNI 才能实现这一点?
标签: java c ipc shared-memory