Ich habe zwei Java-Programme, die jeweils in einer eigenen JVM-Instanz ausgeführt werden? Können sie mit jeder IPC-Technik wie Shared Memory oder Pipes miteinander kommunizieren? Gibt es einen Weg, es zu tun?ist es möglich, InterProcess-Kommunikation in Java zu haben?
Antwort
Ja; D-BUS und Pipes sind einfach zu bedienen und plattformübergreifend. D-BUS ist nützlich für allgemeine Nachrichtenübergabe-IPC und Pipes zum Senden von Massendaten.
Sie können auch einen TCP- oder UDP-Socket auf localhost öffnen, wenn Sie mehrere Clients unterstützen müssen, die eine Verbindung zu einem zentralen Server herstellen.
Ich fand auch eine implementation of UNIX sockets in Java, obwohl es die JNI erfordert.
http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp
Java Remote Method Invocation (Java RMI) der Programmierer verteilte Java-Technologie basierenden, können die Methoden der Fern Java-Objekte, in denen Java Technologie-basierte Anwendungen erstellen können von anderen JVMs aufgerufen werden *, möglicherweise auf verschiedenen Hosts. RMI verwendet Objekt-Serialisierung, um Parameter zu marshalieren und zu entpacken, und schneidet Typen nicht ab, was echten objektorientierten Polymorphismus unterstützt.
Sicher. Sehen Sie sich RMI oder ein Shared Memory-Konzept wie Java Spaces an.
Verwenden Sie MemoryMappedByteBuffer in Java NIO, um Arbeitsspeicher zwischen Prozessen zu teilen.
Es gibt eine ziemlich neue Initiative für Sprach-agnostic IPC von säulenartigen (d. H Array-basierten) Daten von Apache Plasma.
Bis jetzt (September '17) gibt es keine JVM-Bindungen, aber da das Projekt von Sparks unterstützt wird, denke ich, wird es nicht lange dauern, bis wir eine Implementierung sehen.
Mein Verständnis ist jedoch, dass es kein allgemeines IPC-System gibt, da es darauf ausgerichtet ist, Arrays von Primitiven wie double
, long
, für wissenschaftliche Datenverarbeitung statt Klassen/Objekte zu teilen; obwohl ich hier falsch liegen könnte. Auf der positiven Seite, es ist auch sprachunabhängig, so dass Sie es verwenden können, um mit einer anderen (Nicht-JVM) Laufzeit zu kommunizieren. Das OP hat jedoch nach Java IPC gefragt, so dass dies irrelevant sein könnte.
- 1. Ist es möglich Castor Marshal/Unmarshal eine EnumMap zu haben?
- 2. Ist es möglich, "dynamische" Funktionszeiger in Rebol zu haben?
- 3. Ist es möglich, mehrere PropertyPlaceHolderConfigurer in meinem ApplicationContext zu haben?
- 4. Ist es möglich, mehrere Datenattribute {Name} in HTML5 zu haben?
- 5. Ist es möglich, einen funktionsbasierten Index in MySQL zu haben?
- 6. Ist es möglich, zwei Schlüssel in derselben Klasse zu haben?
- 7. Ist es möglich, Enum von enums in C++ zu haben?
- 8. Ist es möglich, eine indizierte Sicht in MySQL zu haben?
- 9. Ist es möglich, einen zusammengesetzten Fremdschlüssel in Schienen zu haben?
- 10. Ist es möglich, temporäre Tabellen in einer Funktion zu haben?
- 11. Ist es möglich, eine Konstruktorfunktion in einem Merkmal zu haben?
- 12. Ist es möglich, in PyCharm statische Assertions zu haben?
- 13. Ist es möglich, Newline-Zeichen in Ionic2 Toast zu haben?
- 14. ist es möglich, in SQL-alphanumerischen Sequenz-Generator zu haben
- 15. Ist es möglich, zwei Passwortdateien in Apache2 zu haben?
- 16. Ist es möglich, zu viele anonyme Delegierte zu haben?
- 17. Ist es möglich, einen Elternstatus zu haben, ohne seinen Namen in der URL zu haben?
- 18. Ist es möglich, Validatoren mit Parametern zu haben?
- 19. Angular Material mdTabs: Ist es möglich, vertikale Tabs zu haben?
- 20. Ist es möglich, ein animiertes Zeichenfeld zu haben?
- 21. Ist es möglich, mehrere simultane Tasteneingaben mit ProcessingJS zu haben?
- 22. Ist es möglich, einen Datepicker ohne Jquery UI zu haben?
- 23. Ist es möglich, eine verknüpfte Liste verschiedener Datentypen zu haben?
- 24. Ist es möglich, "Nur-Implementierungs" -Klassenmitglieder zu haben?
- 25. Ist es möglich, eine "Auto" -Membervariable zu haben?
- 26. Ist es möglich, mehrere Masken mit Clip-Pfad zu haben?
- 27. Ist es möglich, eine einzige Testversion pro Gerät zu haben?
- 28. Ist es möglich, ein privates/internes Docker-Repository zu haben?
- 29. zumb foundation ist es möglich, volle Zeilenbreite zu haben
- 30. Ist es möglich, einen benutzerdefinierten NSWindowController beim Start zu haben?