![]() |
Nachrichten an Java-Programm senden
Moin moin,
ich suche grade nach einer Möglichkeit aus einem Delphi-Programm heraus Daten an ein Java-Programm zu schicken. RMI scheint mir nur Java-Intern zu sein. Auf Netzwerk-Ebene wollte ich mich dabei nicht begeben... Wie ich gegebenenfalls aus Java an die Windows-Messages komme habe ich bisher auch noch nirgends in Erfahrung bringen können. Es sollen lediglich zwei Zustandsänderungen (Bool'sche Werte) an das Java-Programm übermittelt werden. Dazu hatte ich notfalls schon mit dem Gedanken gespielt, Tastenkombinationen an den Java-Teil zu senden und nur darauf zu reagieren. Leider bin ich nach bisheriger Suche noch nicht viel schlauer. Was meint Ihr dazu? Irgendwelche Ideen? Hat schon wer ähnliches gemacht? Grüße, AnoBit PS: Die beiden Komponenten sind beide aus eigener Schmiede. |
AW: Nachrichten an Java-Programm senden
Vielleicht hilft dir ja
![]() |
AW: Nachrichten an Java-Programm senden
JNI und JNA sind zwei Standards, mit denen Java auf native Funktionen zugreifen kann. Beide unterstützen auch Callback-Funktionen. Aus Delphi funktionierte es in meinen Tests zwar, aber ich würde es aus Gründen der Einfachheit mit einer Socketverbindung (z.B. simple HTTP Requests) lösen. Denn man würde bei JNI/JNA zuerst in Delphi (oder C) eine DLL schreiben, diese mit dem anderen Delphi Programm dann ansprechen und zuletzt aus der DLL einen Callback im Java Programm ausführen. Das ist eine umständliche Lösung, verglichen mit einem einfachen Java HTTP Listener Thread und einem Indy IdHTTP.Post (oder.Get) Aufruf.
Noch weniger Aufwand (im wesentlichen pappt man nur eine @WebService Annotation an eine Klasse) wäre es, einen eingebetteten Web Service in Java zu erstellen, das erfordert noch nicht einmal die Enterprise Edition von Java. Der HTTP Endpoint (Server) wird mit einer Zeile Code erzeugt. Delphiseitig kann man dann den WSDL Importer verwenden oder den passenden SOAP Request zu Fuss erstellen. Ein deutschsprachiges Beispiel ist hier zu finden: ![]() |
AW: Nachrichten an Java-Programm senden
Eine Lösung die einfacher als die (von mir) damals vorgeschlagenen Lösungen mit Web Services und JNA ist: Memory Mapped Files. Diese werden auch von Java unter Windows unterstützt und bieten sehr gute Performance.
Online Quellen: Als Einstieg ![]() Zitat:
![]() |
AW: Nachrichten an Java-Programm senden
Zitat:
MMF (bzw. allgemein geteilter Speicher) sind zur Kommunikation selten eine einfache Lösung. Man muss dabei alles beachten, was es in der nebenläufigen Programmierung so zu beachten gibt. Und dir stehen zwischen Java und nativen Windowsprogrammen noch nicht einmal Semaphoren/Mutexe zur Verfügung. In diesem Fall (ein Leser, ein Schreiber auf 2 voneinander unabhängigen booleschen Variablen) sollte es noch gut gehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz