hadaka: Java Programme fernsteuern?

Hey Leute,
Ich arbeite zur Zeit an einem Programm welches in Java geschrieben wird.
Nun stehe ich vor folgendem Problem:
Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.
Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...
Könnt ihr mir da helfen?
MfG Hadaka

  1. Ich hab von Java zwar keine Ahnung aber normalerweise gibt es etwa zwei Möglichkeiten, die auch noch verwandt sind:
    1. Programm1 lauscht auf irgendeinem Netzwerk-Port und Programm2 sendet seine Kommandos an diesen Netzwerkport
    2. Programm1 lauscht auf irgendeinem Netzwerk-Port und Programm2 etabliert eine Verbindung zu diesem Programm. Über diesen Kanal tauschen sich die beiden Programme aus.
    Das macht man normalerweise mit Sockets.

    Abwandlung: Du verwendest ein vorhandenes Netzwerkprotokoll (was weiß ich http+xml oder IRC oder XMPP oder sonst was) mit einer der o.g. Varianten.

    Oder du denkst dir was abstruses aus wie z.B. eine Datei in die das eine Programm reinschreibt und dass das andere Programm liest (kann man gut machen wenn man durch Firewalls muss oder so, dann muss irgendein anderes Programm eben die Dat(ei)en entgegennehmen und abspeichern).

    --
    sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
  2. h1,

    Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...

    Stichwort Pipe.

    Horst (Pipesmoker)

    --
    Warum sollte ich nicht rauchen? Mein Auto raucht doch auch...
  3. Hallo hadaka.

    Nachdem hier zwei konkrete Techniken, Pipe und Sockets, genannt wurden, will ich den Oberbegriff dazu in den Ring werfen: Interprozesskommunikation.

    Möglichkeiten der IPC in Java kannst du z.B. auf stackoverflow.com [1][2] oder natürlich mit Hilfe von Google finden.

    Servus,
    Flo

  4. Servus Hadaka,

    [...]
    Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.
    Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...

    Da es sich um ein Java-Problem handelt, ist der richtige Ansatz (der sich auch mit den nicht-Java-spezifischen Antworten verträgt): RMI - Remote Method Invocation. Damit kannst Du in Java sehr einfach Methodenaufrufe zwischen verschiedenen Java-VMs realisieren.

    Schöne Grüße,

    Peter

  5. Hi,

    Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.

    Sollen denn beide Programme auf demselben PC laufen oder auf unterschiedlichen? Wenn auf unterschiedlichen PC's und die Kommunikation über das Netzwerk läuft, hätte ich die ein einfaches Beispiel (eine kleine Bibliothek) welche ich mal selbst geschrieben hab und einigermassen funktioniert.

    mfg
    mabuhay

    --
    Mein low-power Homeserver mit dem GuruPlug Server Plus: www.myownhomeserver.ch