Читая между строк вашего вопроса и комментария, вы пытаетесь использовать отображенный в памяти файл для разделения памяти / объектов между приложениями Java и C ++.
Мой совет: не пытайтесь сделать это .
Существуют сложные проблемы, которые необходимо решить, чтобы сделать это надежным:
- синхронизация использования двумя приложениями общей структуры данных,
- гарантируя, что изменения, внесенные одним приложением, будут надежно записаны в основную память и прочитаны другим,
- гарантирует, что изменения будут записаны на диск в ожидаемом порядке.
Специфическая проблема Java заключается в том, что вы не можете поместить свои объекты Java в область отображения памяти. Вместо этого вы должны сериализовать и десериализовать их некоторым способом, который совместим с представлениями, которые ожидает сторона C ++.
Наконец, даже если вам удастся решить все эти проблемы, ваше решение, вероятно, будет хрупким, поскольку оно зависит от неуказанного поведения реализаций ОС, C ++ и Java , которое потенциально может измениться , если вы изменить версии любого из вышеперечисленных.