Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java

Diskutiere Probleme beim Ausführen von Shell-Befehlen mit Java im Allgemeine Java-Themen Forum; Klar, in dem Code oben wird eine öffentliche Klasse namens Test definiert. Diese Klasse enthält die main-Methode.

  1. mihe7
    mihe7 Bekanntes Mitglied
    Klar, in dem Code oben wird eine öffentliche Klasse namens Test definiert. Diese Klasse enthält die main-Methode.
     
  2. BaumGuard
    BaumGuard Neues Mitglied
    Dann muss das Programm wahrscheinlich erst kompiliert werden, bevor man den Befehl aus #9 nutzen kann, oder?
    Wenn ja, als jar oder class?
     
  3. mihe7
    mihe7 Bekanntes Mitglied
    Nimm einfach einen Texteditor, kopier den Code rein, speichere die Datei als Test.java ab. Dann öffnest Du ein Terminal, wechselst in das Verzeichnis und führst die in Kommentar #6 genannten Schritte aus.
     
  4. BaumGuard
    BaumGuard Neues Mitglied
    Funktioniert immer noch nicht. Ich lade jetzt einfach den Code hoch, sodass du selbst mal danach schauen kannst. Die Datei darf auch verändert werden. Die Datei muss dann noch in chmodGUI.java umbenannt werden, weil ich sie nicht als java-Datei hochladen kann.
     

    Anhänge:

  5. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Wie schon von @mihe7 gesagt:
    Du musst da keinerlei Strings selbst zusammenbasteln oder escapen.
    Übergib einfach die Werte alle einzeln (Programmname, Parameter (-r, u+x, etc...), DateiPfad).
     
    mihe7 gefällt das.
  6. BaumGuard
    BaumGuard Neues Mitglied
    Vielleicht hätte ich folgende Information noch ergänzen sollen: Wenn ich von meinem Java-Programm aus chmod auf einen Dateipfad, der keine Leerzeichen enthält, anwende, dann funktioniert es problemlos. Nur bei Dateifaden mit Leerzeichen geht es nicht. Dann kann ich die Parameter meinetwegen auch als Arrays der Runtime übergeben, ohne dass das weiterhilft.
    Ist es auch möglich, dass es sich um einen Bug in Java handelt?
     
  7. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Nein, auch Pfade mit Leerzeichen funktionieren mit exec völlig Problemlos.
    Dein Versuch, die Leerzeichen zu escapen und den String zusammen zu basteln, macht aber vermutlich mehr kaputt machen als es hilft...
     
  8. mihe7
    mihe7 Bekanntes Mitglied
    Möglich ist alles, aber unwahrscheinlich. Nimm Dir doch einfach mal irgendein konkretes Beispiel auf Deiner Platte - inkl. Leerzeichen (sagen wir mal /home/BaumGuard/Meine Bilder/x.jpg). Dann nimmst Du das simple Testprogramm aus #7, ersetzt "X Y" durch "/home/BaumGuard/Meine Bilder/x.jpg" und lässt es laufen.
     
  9. BaumGuard
    BaumGuard Neues Mitglied
    Genau das mache ich ja schon die ganze Zeit.

    Ich habe meine Parameter jetzt in den folgenden Array gepackt:
    Code (Java):
    String [] BefehlArray = new String[] {"/bin/chmod",rekursivParameter,BenutzerParameter,EVParameter,w,r,x,zusammen3};
    Dann habe ich der Runtime den Array übergeben:
    Code (Java):
    Process p = Runtime.getRuntime().exec(BefehlArray);
    Aber es funktioniert immer noch nicht.
     
  10. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Übergib einfach den ganz normalen Dateipfad, ohne irgendetwas an diesem zu verändern.

    Und natürlich müssen die einzelnen übergebenen Dinge sinnvoll sein, zB einfach leere Strings übergeben ist das nicht.
     
    Zuletzt bearbeitet: 6. Jan. 2019
  11. Wenn du Java lernen möchtest, empfehlen wir dir dieses Buch hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Probleme beim Ausführen von Shell-Befehlen mit Java - Ähnliche Themen

Probleme beim einbinden von Zip4j library
Probleme beim einbinden von Zip4j library im Forum Allgemeine Java-Themen
Probleme beim automatischen Konvertieren
Probleme beim automatischen Konvertieren im Forum AWT, Swing, JavaFX & SWT
Probleme beim Kompelieren mache ich etwas falsch ?
Probleme beim Kompelieren mache ich etwas falsch ? im Forum Java Basics - Anfänger-Themen
Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben
Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben im Forum Java Basics - Anfänger-Themen
Probleme beim aktualisieren eines JPanels
Probleme beim aktualisieren eines JPanels im Forum Java Basics - Anfänger-Themen
Thema: Probleme beim Ausführen von Shell-Befehlen mit Java