getRuntime().exec unix problem

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
ich hab folgende Methode zum aufrufen von unix befelen klapt auch bei einfachen sachen wie ls
wollte nun aber "crontab -l | grep -v '#' > crontab.txt" ausführen lassen.
Klappt aber nicht crontab -l gibt er noch aus wenn ichs einzelnd übergebe
aber weder crontab - l > crontab.txt noch crontab -l | grep -v '#' funktioniert.

hat wer ne Ahnung wie man das hinbekommt?

schonmal danke für alle hilfreichen antworten

mfg Sintec


Code:
public void ausfuehern(String befehl ) {	
    
      String text ="";    // Lesepuffer
      // Stream zum Einlesen der Prozeßausgabe
      BufferedReader in;
      PrintWriter out = new PrintWriter(System.out);
      try {
        // Prozeß anlegen
        String b = befehl;
        Process p = Runtime.getRuntime().exec(b);
        // Eingabestream holen
        in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        // Alle Zeichen aus dem Stream auslesen und
        // auf der Standardausgabe ausgeben
        while ((text = in.readLine()) != null) {
          out.println(text); out.flush();
         
        }
        
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
 
B

bygones

Gast
afaik schafft man ueber systemcalls keine pipes....

also weder | noch > geht.

> brauchst du nicht, da du ueber den inputstream das einlesen und schreiben
 

Ariol

Top Contributor
du könnetst dir auch schnell ein oder mehrere Shellskripte bauen und diese aufrufen. Die Pipes sind dann weggesperrt


Und wenn das zu unflexibel ist, lass dir das script von java erstellen.
 

HoaX

Top Contributor
| und > sind features diener shell, also solltest du auch eine benutzen:

Code:
Runtime.getRuntime().exec("/bin/bash -c \"crontab -l | grep -v '#' > crontab.txt\"");

sollte gehen (ungetestet)
 
Hallo
Ich bräuche auch Hilfe und zwar ich versuche ein einfaches py skript in eclipse laufen zu lassen aber ich kriege den folgenden Fehler:

Der Code

import java.io.*;

public class Build
{
public static void main(String[] args)throws Exception
{
try
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("python /home/lucius/Desktop/hallo.py");
System.out.println(p);
p.waitFor();

}
catch (Exception e)
{
e.printStackTrace();
}
}
}

und

der Fehler

java.lang.UNIXProcess@190d11


Danke

Grüße
Lucius
 
B

bygones

Gast
und dafuer einen 2 Jahre alten Thread hervorheben ? n neuen waere besser gewesen ...

und ja - ist kein Fehler ist die Ausgabe des Prozesses
 
Aber ohne System.println.....kriege ich nicht die Ausgabe .
Mein hallo.py sollte bloß nur ( print "SUCCESS") ausgegen. Und das tut er nicht ..
Danke für deine schnelle Antwort und sorry ich bin ganz neu in java
 

faetzminator

Gesperrter Benutzer
Das kriegst du aber auch so nicht. du musst die Ausgaben des Outputstreams von [c]p[/c] nach [c]System.out[/c] weiterleiten.
 
B

bygones

Gast
Aber ohne System.println.....kriege ich nicht die Ausgabe .
natuerlich ohne System.out.println keine Ausgabe...

ich denke du willst das Ergebnis des Skripts... das was du ausgibts ist das Prozessobjekt was erstellt wurde, was nix mit dem eigentlich Kommando zu tun hat.

somit solltest du das ergebnis des skripts lesen koennen (sollte ;-) )
Java:
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String l = null;
while ( (l = reader.readLine() ) != null ) {
  System.out.println(l);
 
import java.io.*;

public class Build
{
public static void main(String[] args)
{
try
{
Process p = Runtime.getRuntime().exec("python home/lucius/Desktop/hallo.py");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
p.waitFor();

}
catch (Exception e)
{
e.printStackTrace();
}
}


aber immer noch keine Ausgabe..

()()
 

faetzminator

Gesperrter Benutzer
1. X Posts nacheinander machen den Poster unbeliebt -> Editierfunktion ist hier 24h vorhanden
1a. Zweit- und drittletzter Post sind in diesem Fall wirklich unnötig
2. Toll, wenn dein Problem gelöst wurde. Falls nun aber jemand, welcher das gleiche Problem hat, den Thread findet, weiss er nicht, was du nun noch gemacht hast. Poste doch die Lösung noch ebenfalls im vorigen Post (Edit-Funktion).
 
Das ist die Lösung , falls jemandem die braucht

"""

import java.io.*;

public class Build
{
public static void main(String[] args)
{
try
{
Process p = Runtime.getRuntime().exec("python /home/lucius/Desktop/hallo.py");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
p.waitFor();

}
catch (Exception e)
{
e.printStackTrace();
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
B getRuntime().exec() Java Basics - Anfänger-Themen 4
P Vererbung Runtime.getRuntime().exec("blub"); Java Basics - Anfänger-Themen 11
J Window 7 Problem mit Runtime.getRuntime().exec("explorer") Java Basics - Anfänger-Themen 4
S .exe mit getRuntime.exec sichtbar ausführen Java Basics - Anfänger-Themen 3
D Runtime.getRuntime().exec(command); Java Basics - Anfänger-Themen 5
X Runtime.getRuntime().exec() Problem(inkonsistenter sch****) Java Basics - Anfänger-Themen 2
G Runtime.getRuntime().exec(command) für Mac OS! Java Basics - Anfänger-Themen 7
G Runtime.getRuntime().exec und Exception? Java Basics - Anfänger-Themen 3
L Bitte um Hilfe: getRuntime().exec() Java Basics - Anfänger-Themen 12
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
O Aktuelles Verzeichnis Runtime.getRuntime().exec Java Basics - Anfänger-Themen 6
T Process pro =Runtime.getRuntime.exec("wine /Datei Pfad/ Java Basics - Anfänger-Themen 8
S mit getRuntime.exec gestarteten Prozess überwachen Java Basics - Anfänger-Themen 2
T Runtime.getRuntime().exec mit parameterübergabe Java Basics - Anfänger-Themen 16
padde479 Runtime.getRuntime.exec() Leerzeichen unterdrücken Java Basics - Anfänger-Themen 2
B mit Runtime.getRuntime().exec auch HTML-Dateien öffnen? Java Basics - Anfänger-Themen 7
G Parameterübergabe bei Runtime.getRuntime().exec Java Basics - Anfänger-Themen 16
F Probleme mit Runtime.getRunTime().exec() Java Basics - Anfänger-Themen 7
M Runtime.getRuntime().exec() Problem Java Basics - Anfänger-Themen 3
C Kann java.exe nicht aus Runtime.getRuntime().exec() starten Java Basics - Anfänger-Themen 4
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
I Runtime.getRuntime mit delay? Java Basics - Anfänger-Themen 2
M Grep über .getRuntime Java Basics - Anfänger-Themen 12
N Und noch eine Frage über getRuntime() Java Basics - Anfänger-Themen 4
Z Frage nach getRunTime() Java Basics - Anfänger-Themen 2
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
D Input/Output Runtime().exec fehler abfangen Java Basics - Anfänger-Themen 4
D RunTime Exec Java Basics - Anfänger-Themen 7
D Runtime exec output wiedergeben Java Basics - Anfänger-Themen 1
G Wie bekomme ich alle Ausgaben von runTime.exec() Java Basics - Anfänger-Themen 7
M Noch immer Probleme mit exec Java Basics - Anfänger-Themen 15
K exec.StdIn.Write Java Basics - Anfänger-Themen 7
C javac, exec, -sourcepath, Umgebungsvariablen Java Basics - Anfänger-Themen 9
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
C exec Umgebungsvariablen Java Basics - Anfänger-Themen 2
K Eingabe für exec überprüfen Java Basics - Anfänger-Themen 2
P Probleme mit Runtime.exec und Leerzeichen Java Basics - Anfänger-Themen 15
R exec: plattformunabhängig Java Basics - Anfänger-Themen 7
S Mit Runtime.exec() ImageMagick aufrufen -> Problem Java Basics - Anfänger-Themen 5
D Runtime.exec cygwin1.dll Java Basics - Anfänger-Themen 4
I Runtime.exec mit Adminrechten Java Basics - Anfänger-Themen 2
M Runtime exec mit Ordner angabe Java Basics - Anfänger-Themen 7
F Leerzeichen in Pfadangabe beim Befehl exec() Java Basics - Anfänger-Themen 5
T Benötige ich einen thread bei zugriff getRunetime.exec ? Java Basics - Anfänger-Themen 4
G Runtime.exec() Problem Java Basics - Anfänger-Themen 4
Z linux-befehl Runtime exec Java Basics - Anfänger-Themen 2
M Runtime.exec() Java Basics - Anfänger-Themen 5
N Runtime.exec und Key event Java Basics - Anfänger-Themen 2
K Datein ausführen (exec) Java Basics - Anfänger-Themen 3
G Probelm mit Runtime exec! Erstellen einer neuen Konsole. Java Basics - Anfänger-Themen 2
S Runtime.exec -> Thread.sleep -> Konflikt Java Basics - Anfänger-Themen 7
P Hallo.class auf Unix? Java Basics - Anfänger-Themen 12
F .jar File funktioniert in Unix nicht Java Basics - Anfänger-Themen 8
C Windows Java unter Unix Java Basics - Anfänger-Themen 2
A Unix-Zeit verkürzen Java Basics - Anfänger-Themen 2
B [ Solved ]Unix Commando ausfuehren Java Basics - Anfänger-Themen 8
P Date geht auf UNIX 1 Stunde nach Java Basics - Anfänger-Themen 14
P UNIX Command wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
G Unix Shell Subroutine ausfuehren Java Basics - Anfänger-Themen 3
L Verzeichnisse mit Inhalt verschieben auf UNIX Java Basics - Anfänger-Themen 5
Lazybone Unix Time <-> normal Time Java Basics - Anfänger-Themen 3
G Unix Befehl ps unter Java Java Basics - Anfänger-Themen 2
C Owner (UNIX) Java Basics - Anfänger-Themen 2
S String in Unix Timestamp Java Basics - Anfänger-Themen 11
M Unix Befehl aufrufen Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
J relative pfade windows/unix Java Basics - Anfänger-Themen 12
S Unix Timestamp entschlüssen Java Basics - Anfänger-Themen 6
S Datum in Unix-Timestamp umwandeln Java Basics - Anfänger-Themen 5
6 java mit -cp unter unix Java Basics - Anfänger-Themen 51
J java.lang.NoClassDefFoundError bei Java-Aufruf aus UNIX Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben