У меня есть программа на С++, которая использует в одной точке
hMapFile = OpenFileMapping(dwDesiredAccess, bInheritHandle, lpName);
lpName
- это что-то вроде "myfile"
без расширений или путей, то есть файла с отображением памяти. Я могу найти файл с WinObj-браузером (WinObj) в пути Sessions\1\BaseNamedObjects\myfile
. Если я попытаюсь прочитать этот конкретный файл на Java, я попробовал
File file = new File("myfile");
FileChannel filechannel = new RandomAccessFile(file, "r").getChannel();
MappedByteBuffer buffer = filechannel.map(FileChannel.MapMode.READ_ONLY, 0, filechannel.size());
Но я получаю всегда ту же ошибку: не могу найти указанный файл в команде RandomAccessFile
. Может быть, нужен другой доступ к файлам? Какой?
Как я понимаю другими сообщениями, они всегда используют путь и расширение, однако я не знаю, что путь и расширение будут в моем случае...
Что я ищу, я получаю доступ к пространства имен объектов ядрa > пространства имен объектов ядра
Я знаю, что есть пример JNI (Memorymap с использованием JNI), однако я хотел бы сохранить его простым и использовать nio
( если возможно).
UPDATE
Итак, я просто попробовал все это на С#, и это было смешно легко, не взяло меня более 5 строк кода.