Kommunikation mit externem Programm ueber Linux-Pipes

Status
Nicht offen für weitere Antworten.
M

motus

Gast
Hallo,

ich versuche zur Zeit mit einem externem Programm mit Hilfe von Linux Pipes zu kommunizieren, aber es will einfach nicht klappen.
Das Programm erwartet auf einer Pipe die Eingabe eines codierten Strings und schreibt die decodierte Nachricht (im XML-Format) in eine zweite Pipe, sowie die Fehlerausgabe in eine dritte.
Das Problem ist, dass wenn ich mit Hilfe von
Code:
File temp = new File("entsprechende Pipe");
auf die Pipe zugreifen will, das Programm solange stehen bleibt, bis das externe Programm etwas in die Pipe schreibt.
Dies geschieht aber erst, wenn ich mit Hilfe z.B. eines PrintWriters etwas in die Eingangspipe gschrieben habe. Dies ist ja aber dann nicht moeglich, da das Programm steht.
Wenn ich das vorher mache, ist die Ausgabe schon wieder verschwunden, bevor ich darauf zugreifen kann.
Ich hab es auch schon mit einem Thread probiert, in dem das File geoeffnet werden soll, um dann im Nachhinein etwas in die Eingangspipe zu schreiben. Hier habe ich aber trotzdem eine Timing-Problem, da ich nicht weiss, ob der Thread schon soweit ist und schon an der entsprechenden Pipe liest.

Kann mir da jemand helfen? Bin hier schon langsam am verzweifeln.

Ciao
Henning
 
M

motus

Gast
Ergaenzung:
Ich hab die Ausgabe des externen Programms jetzt in eine Datei umgelenkt und lese aus dieser. Das funtkioniert leider nur bedingt. Zwar kann ich so erst den codierten String an das externe Programm uebergeben und das Ergebnis steht in der Datei, aber dadurch entsteht ein Timing Problem. Und zwar greift mein Programm dann zu schnell auf diese Datei zu, wenn das externe Programm bzw. Linux noch darin schreibt. Dadurch erhalte ich dann diverse Fehler beim Einlesen mit Hilfe des SAXBuilders. Wenn mein Rechner isgesamt stark ausgelastet ist, funktioniert diese Vorgehensweise jedenfalls, da mein Programm nicht schnell genug ausgefuehrt werden kann, um evtl. zu zeitig auf die Datei zuzugreifen. Wie kann ich also sichergehen, dass die Datei fertig geschrieben wurde?
Da diese Vorgehensweise ausserdem relativ langsam ist (Schreiben auf Platte...) waere es mir lieber, ich kriege das ueber die Pipes direkt hin.
 
M

motus

Gast
mein Programm bleibt stehen sobald ich die o.g. Zeile ausfuehre. Der Konstruktor von File scheint darauf zu warten, dass er was an der Pipe empfaengt, was aber erst passieren kann, sobald ich an die andere Pipe etwas sende.
 
M

motus

Gast
Da ich mein Problem leider bisher noch nicht loesen konnte, kram ich nochmal diesen Thread aus.
Um das Problem nochmal kurz zusammen zu fassen:
ich moechte mit folgendem Befehl eine XML-Datei einlesen:

Code:
Document doc = saxbuilder.build(new File("/tmp/outPipe"))

Nach dem Programm steht das Programm solange, bis an der Pipe etwas ankommt.

Damit dort etwas ankommt muss ich mit Hilfe eines PrintWriters etwas in eine andere Pipe schreiben, in etwa so:

Code:
pw.print(hexdump)

Das Problem liegt halt in der Reihenfolge der auszufuehrenden Befehle. Ein Versuch war, einen Thread zu starten, der den ersten Befehl ausfuehrt, um anschliessend im Hauptprogramm den 2. Befehl auszufuehren. Leider funktioniert das aus mir bisher unersichtlichen Gruenden nicht.
Wie kann ich also die Threads so synchronisieren, dass der 2. Befehl wirklich erst dann ausgefuehrt wird, wenn der SAXBuilder bereit ist und an der Pipe lauscht?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Applet Servlet Kommunikation ein Problem bei externem Server Allgemeine Java-Themen 3
CptK Backpropagation parallelisieren: Kommunikation zwischen den Threads Allgemeine Java-Themen 7
L Kommunikation zwischen C# und Java? Allgemeine Java-Themen 5
R PIPE Kommunikation mit Prozess blockiert Allgemeine Java-Themen 0
M Checksummenprüfung bei Client Server kommunikation Allgemeine Java-Themen 3
D Interthread-Kommunikation Allgemeine Java-Themen 6
S Threads Kommunikation zwischen SocketThread und WorkerThread Allgemeine Java-Themen 11
0 Lösungsweg Client Server Kommunikation Fehlermeldung ausgeben Allgemeine Java-Themen 12
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
F Serielle Kommunikation Allgemeine Java-Themen 20
A Kommunikation zwischen 2 Jar-dateien Allgemeine Java-Themen 16
S Kommunikation von Core und GUI über Schnittstellen Allgemeine Java-Themen 2
P Komponenten kommunikation Allgemeine Java-Themen 7
L Serielle Kommunikation Allgemeine Java-Themen 6
G Implementierung einer Kommunikation Allgemeine Java-Themen 7
B SerialPort Kommunikation - Pufferüberlauf Allgemeine Java-Themen 6
0 Sandbox und Applet Kommunikation Allgemeine Java-Themen 9
E kommunikation zwischen Fenstern Allgemeine Java-Themen 3
H Java C++ Interprozess Kommunikation Allgemeine Java-Themen 7
D Klassen Kommunikation Allgemeine Java-Themen 11
F Kommunikation zw 2 Java-Programmen mit unterschiedl Compiler Allgemeine Java-Themen 13
G Kommunikation mit Remotegeräten Allgemeine Java-Themen 2
A Kommunikation zwischen C++ und Java-Programm Allgemeine Java-Themen 4
J Kommunikation mit USB Gerät, das Midi-Signale sendet Allgemeine Java-Themen 4
G Kommunikation mit der seriellen Schnittstelle Allgemeine Java-Themen 6
H Kommunikation mit einem c-Prozess funzt nicht richtig Allgemeine Java-Themen 5
C Pattern für Kommunikation gesucht Allgemeine Java-Themen 3
B Kommunikation mit entferntem Thread Allgemeine Java-Themen 6
O kommunikation zw. objekten Allgemeine Java-Themen 7
G Kommunikation von zwei Java-Programmen Allgemeine Java-Themen 3
N Inter-Thread-Kommunikation Allgemeine Java-Themen 3
M Kommunikation zwischen 2 Programmen Allgemeine Java-Themen 7
G Kommunikation zwischen Threads und Gui Allgemeine Java-Themen 2
T Kommunikation mit batch datei Allgemeine Java-Themen 3
P kommunikation zwischen dialog und threads Allgemeine Java-Themen 4
K MVC - Kommunikation Controller <> Gui Allgemeine Java-Themen 5
P Kommunikation von Threads Allgemeine Java-Themen 5
V Kommunikation zwischen Programmen und Threads Allgemeine Java-Themen 7
H Servlet/Applet Kommunikation Allgemeine Java-Themen 2
C Kommunikation mit USB Port Allgemeine Java-Themen 1
H InputStream Problem mit externem Kommandozeilenprogramm Allgemeine Java-Themen 2
J text aus externem fenster lesen Allgemeine Java-Themen 3
S Probleme mit externem Programm Allgemeine Java-Themen 2
D Warten auf Dateien aus externem Programm Allgemeine Java-Themen 3
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
N Programm startet nicht, nur per cmd Allgemeine Java-Themen 5
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
R Programm zur Rekursion Allgemeine Java-Themen 5
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
dereki2000 Programm veröffentlichen Allgemeine Java-Themen 14
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben