Не могли бы вы написать класс Java с некоторыми нативными методами, написать реализацию нативного метода в C, чтобы делать то, что вы хотите с mmap. Затем скомпилируйте это в собственную библиотеку и добавьте ее в среду выполнения, используя LD_LIBRARY_PATH. Это позволит вам делать нативные C-вызовы в Java без издержек JNI (я думаю).
Некоторые уроки здесь: ссылка
Например, вы бы написали класс Java, такой как:
JMMap.java
public class JMMap {
public native void write(...)
}
Затем запустите javah для файла классов, чтобы получить что-то вроде:
JMMap.h
JNIEXPORT void JNICALL Java_JMMap_write(JNIEnv *, jobject);
Реализуйте это в файле .c. Скомпилируйте это в библиотеку. Добавьте его в путь LD, а затем просто вызовите функцию Java.