Process.getInputStream unter Linux

F

FlorianP

Gast
Hallo,
ich muss aus einem Java Programm Scilab aufrufen und damit rechnen. Der folgende Code läuft unter Windows, nicht aber unter Linux.

Java:
private static final String COMMAND = "/usr/bin/scilab"; // Linux
private static final String OPT = "-nwni"; // Linux
// private static final String Command = "c:\\programme\\scilab-5.3.0\\bin\\Scilex.exe"; // Windows

ProcessBuilder pb = new ProcessBuilder(COMMAND,OPT); // Linux
// ProcessBuilder pb = new ProcessBuilder(COMMAND); // Windows
pb.redirectErrorStream(true);

Process sciProcess = pb.start();

new Thread() {
				public void run() {
					BufferedReader r = new BufferedReader(new InputStreamReader(sciProcess.getInputStream()));
					while (true) {
						try {
							String sciOutput = r.readLine();
							System.out.println(sciOutput);
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
			}.start();

PrintStream sciExec = new PrintStream(sciProcess.getOutputStream());
sciExec.println("A=5");
sciExec.flush();

Unter Windows bekomme ich die Ausgaben von Scilab inklusive der copyright Meldungen am Anfang. Unter Linux bekomme ich nichts. Laut ps läuft der Prozess aber.
Ein ähnliches Problem bekomme ich mit bc, da bekomme ich ebenfalls die Copyrightmeldung nicht, kann dann aber damit rechnen und bekomme die Ergebnisse.

Hat jemand einen Vorschlag?

LG Florian
 

eRaaaa

Top Contributor
Gehts denn wenn du dne Stream schließt?Und ich würde die Endlosschleife da weglassen, benutze den Scanner und hasNext :)

Java:
		private static final String COMMAND = "/usr/bin/scilab"; // Linux
		private static final String OPT = "-nwni"; // Linux
		// private static final String Command =
		// "c:\\programme\\scilab-5.3.0\\bin\\Scilex.exe"; // Windows

		ProcessBuilder pb = new ProcessBuilder(COMMAND, OPT); // Linux
		// ProcessBuilder pb = new ProcessBuilder(COMMAND); // Windows
		pb.redirectErrorStream(true);

		final Process sciProcess = pb.start();

		new Thread() {
			public void run() {
				Scanner sc = new Scanner(sciProcess.getInputStream());
				while (sc.hasNext()) {
					System.out.println(sc.next());
				}
			}
		}.start();
		PrintStream sciExec = new PrintStream(sciProcess.getOutputStream());
		sciExec.println("A=5");
		sciExec.println("A*A");
		sciExec.close();

???:L
 
F

FlorianP

Gast
Danke schonmal für den Hinweis. Wenn ich close() verwende, bekomme ich das Ergebniss der einen Rechnung. Aber immer noch nicht die Startup Meldungen und ich muss mehrere (ziemlich viele) Berechnungen nacheinander ausführen. Und nach einem erneuten öffnen des Streams mit getOutputStream() kann ich keine zweite Berechnung durchführen.

Und das Starten von Scilab dauert zu lange, als dass ich für jede Berechnung Scilab neu starten könnte!
 
F

FlorianP

Gast
Vielleicht sollte ich noch anmerken, dass manche Programme damit (ohne close() ) funktionieren, bsp. ps oder cat gibt die gewünschte Ausgabe. bc kann gibt nach einer Eingabe auch das gewünschte Ergebnis aus, es fehlt aber die Startup Meldung!
 
B

bERt0r

Gast
Du könntest mal versuchen den Outputstream vor dem InputStream zu setzten, also das
PrintStream sciExec = new PrintStream(sciProcess.getOutputStream());

So was ähnliches hatte vor kurzem ein anderer hier im Forum, und der hatte auch ganz seltsame Probleme, die dadurch behoben wurden.
 
F

FlorianP

Gast
Hab das jetzt auch probiert, auch ein paar Varianten mit OutputStream davor, mit Scanner oder mit Endlosschleife, ich bekomm erst eine Ausgabe wenn ich close() mache, und dann alle gleichzeitig. Und die Copyright Meldung hab ich bisher noch nie bekommen.
Hab das ganze unter Ubuntu 10.04 und 11.04, jeweils mit sun-java oder open-jdk ausprobiert, kein Unterschied.

Fällt noch jemandem was ein woran das liegen kann?
 
F

FlorianP

Gast
Das haben wir als erstes versucht, aber die verträgt keine übermäßig langen Berechnungen und stürzt dann ab, das aber wenigstens Plattformunabhängig! ;) Damit haben wir uns schon ziemlich lang beschäftigt und wollen es jetzt über Konsole versuchen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G ungepufferter Process.getInputStream Allgemeine Java-Themen 10
J process.getInputStream() hängt auf merkwürdige Art und Weise Allgemeine Java-Themen 7
M Process -> getInputStream -> nur gepuffert ? Allgemeine Java-Themen 12
D Compiler-Fehler child process exited with code 1 Allgemeine Java-Themen 1
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
P Herausfinden, ob ein Process ein Fenster hat Allgemeine Java-Themen 1
D Java Process OutputStream ist null Allgemeine Java-Themen 4
X Problem bei process.start() ExitValue Allgemeine Java-Themen 5
T Mit Java auf die Konsole eines Process-Objekts zugreifen Allgemeine Java-Themen 10
P Input/Output Process.getErrorStream = OutputStream Allgemeine Java-Themen 11
J Download: Filename + Process waitFor() Allgemeine Java-Themen 5
S Wie beendet man einen Process in Java Platform unabhänging? Allgemeine Java-Themen 8
M Process wird gestoppt und nach beenden der Anwendung fortgeführt Allgemeine Java-Themen 4
G Process.destory() == CTRL+C Allgemeine Java-Themen 2
P Swing GUI Process anzeigen Allgemeine Java-Themen 10
schlingel Process - Ausgabe leer Allgemeine Java-Themen 5
J Process beenden ...aber wie ? Allgemeine Java-Themen 19
G Process - mehrere Commands?! Allgemeine Java-Themen 2
MQue auf gestarteten Process warten Allgemeine Java-Themen 7
G Process.wait() auf Folgeprozesse mitwarten Allgemeine Java-Themen 29
P Bedeutung der Process.exitValue() Werte? Allgemeine Java-Themen 3
J Process auf Console anzeigen lassen. Allgemeine Java-Themen 5
S Process - Befehle senden Allgemeine Java-Themen 13
B Process Builder Allgemeine Java-Themen 10
D Thread & Process: Beenden einer Batch-Datei Allgemeine Java-Themen 8
D Fremdes Programm schließen (ohne process.destroy()) Allgemeine Java-Themen 8
S process.waitFor() endet mit -1 Allgemeine Java-Themen 3
A Runtime Process bricht nicht ab! Allgemeine Java-Themen 7
C Process output Allgemeine Java-Themen 7
A Java unter Win 10 Allgemeine Java-Themen 1
M Eclipse unter Linux Lite Allgemeine Java-Themen 2
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
H Java SDK unter 32 Bit Allgemeine Java-Themen 5
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
L Tesseract-OCR 4.0 unter Linux funktioniert nicht Allgemeine Java-Themen 3
J Wie konkret funktioniert das Modulsystem unter Java 11? Allgemeine Java-Themen 4
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
E Erfahrungen mit Java/JS Bridge unter nodejs und NodeJS/C++ Bridge Allgemeine Java-Themen 0
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
N Lizenzensierung von Java Programmen unter Linux Allgemeine Java-Themen 3
H Summe aller Vielfachen von 3 oder 5 unter 1000. Allgemeine Java-Themen 7
krgewb LookAndFeel unter Mac OS Allgemeine Java-Themen 1
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
X Zeile unter einer bestimmen Zeile hinzufügen(File) Allgemeine Java-Themen 1
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
F URI-Scheme mit Java unter MacOS erstellen? Allgemeine Java-Themen 0
E Drucken einer Pdf Datei unter Java. Allgemeine Java-Themen 1
E Sonderzeichen nicht setzbar: Großes Problem bei Programmierung unter Linux Mint mit Virtual Box Allgemeine Java-Themen 5
F Mencoder unter Java Ausführen Allgemeine Java-Themen 0
G Methoden HashMap speichert unter falschen Schlüsseln Allgemeine Java-Themen 6
G IR Fernbedienung unter Java Allgemeine Java-Themen 0
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
S JAAS unter Ubuntu? Allgemeine Java-Themen 0
J Compiler-Fehler Compiliert unter Eclipse aber nicht mit javac Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
Guybrush Threepwood Kein user.home unter Windows8 Allgemeine Java-Themen 7
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C JasperReports, PDF und "Speichern unter"-Dialog Allgemeine Java-Themen 7
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
G RXTX native library unter Linux in jar build angeben Allgemeine Java-Themen 4
C Darstellungsproblem unter Debian und OpenJDK Allgemeine Java-Themen 5
R Umlautproblem unter Linux Allgemeine Java-Themen 10
C derby db unter mac os Allgemeine Java-Themen 8
B File Seperator unter verschiedenen OS Allgemeine Java-Themen 2
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Methode läuft nicht unter UNIX Allgemeine Java-Themen 6
S Java-Installation unter Sun OS Allgemeine Java-Themen 3
K Xattr Mac unter Java ansprechen Allgemeine Java-Themen 17
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
L Sicherstellen das 2x die gleichen Daten unter bestimmten Keys enthalten sind. Allgemeine Java-Themen 6
T Javaprogramm unter Linux auf bestimmten Kern starten/laufen lassen ? Allgemeine Java-Themen 22
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
C .jar unter Windows7 über den Explorer starten Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
C Datei auslesen wie unter Linux mit "tail -f" Allgemeine Java-Themen 3
J Java-Datei unter Mac OS X öffnen - eine Frage der Klasse Allgemeine Java-Themen 2
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
H String spliten unter berücksichigung von " und \" Allgemeine Java-Themen 7
V linuxprogramm unter java aufrufen??? Allgemeine Java-Themen 4
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben