Speicher wie der Zugriff auf c ++ Mapped-Dateien in Java
-
28-09-2019 - |
Frage
Ich habe ein Fenster C ++ Anwendung, die ein Memory-Mapped-Datei für eine Bitmap erzeugt, die häufig aktualisiert wird. Ich würde wieder in diesem Speicher abgebildeten Datei zugreifen möchte das Livebild in einer Java-Anwendung angezeigt werden soll. Wie kann ich das tun?
Ich weiß, dass Filechannel in dem Speicher abgebildet werden kann, aber ich kann nicht sehen, wie eine Memory-Mapped-Datei von einem anderen Prozess erstellt zugreifen zu können.
Ich JNA bereits in meiner Java-Anwendung verwenden, soll ich es verwenden, um den Zugriff Standard-Windows-Speicher abgebildeten Dateien Funktionalität?
Oder haben Sie eine andere Lösung als die Memory-Mapped-Datei von einem Bild, das durch ein eigenes Programm erstellt einen Livebild-Stream in Java angezeigt werden?
Andere Tipps
Es ist ein Codebeispiel hier das tut, was Sie wollen JNI verwenden zu Brücke von C ++ (Win32 Memory Mapped-Dateien) auf Java. Könnte funktionieren wie sie ist, obwohl einige Bereinigung für Sicherheit und Einfädeln könnte je nach Szenario benötigt werden.
Eine Memory-Mapped-Datei ist immer noch eine Datei. Man könnte es mit java.io lesen, oder Sie können eine MappedByteBuffer von java.nio verwenden, wenn Sie es auch in Java Memory-Mapped wollen.