Zum Inhalt springen

Konsolenbefehl über Java aufrufen


Empfohlene Beiträge

Geschrieben

Ich versuche gerade den Linux find Befehl in Java aufzurufen (um das ganze später zu erweitern und das Ergebnis in eine SQL DB zu schreiben)

Wenn ich jetzt ganz einfach Befelhe wie "ls -la" ausführe funktioniert das auch ohne Probleme.

Sobald ich aber den find Befehl einfüge, der in der Konsole super funktioniert, bekomme ich nichts zurück, weder Ausgabe noch Fehlermeldung.

Vielleicht kann sich ja jemand mal mein geschreibsel anschauen und mir sagen wo denn der Haken ist.

vielen Dank schonmal =)

Code:


public class Testerei {




    	public static void main(String[] args) {


    		Testerei obj = new Testerei();




//    		String command = "find /mnt/pres/pdf -type f -iname '*.pdf'";


    		String command = "ls -la";


    		String output = obj.executeCommand(command);


    		System.out.println(output);


    	}


    	private String executeCommand(String command) {


    		StringBuffer output = new StringBuffer();


    		Process p;

    		try {

    			p = Runtime.getRuntime().exec(command);

    			p.waitFor();

    			BufferedReader reader = 

                                new BufferedReader(new InputStreamReader(p.getInputStream()));


                            String line = "";			

    			while ((line = reader.readLine())!= null) {

    				output.append(line + "\n");

    			}


    		} catch (Exception e) {

    			e.printStackTrace();

    		}


    		return output.toString();


    	}


    }


Geschrieben

Hi abby,

habe leider selten Berührungspunkte mit direkten Shell aufrufen aus Java aber vielleicht kann ich dir trotzdem ein bisschen helfen.

Soweit ich die exec() Methode verstehe ruft diese nicht direkt die Shell auf sondern führt einen Prozess aus. Umgebungsvariablen kannst du selbst per Parameter setzen. Runtime (Java Platform SE 7 )

Du könntest dein find auch in ein Shell Script packen und dieses dann über Java aufrufen. Dadurch sollte nach meinem Verständnis erst die Shell aufgerufen werden und das find tatsächlich auch dort ausgeführt werden...

Hoffe es hilft dir ein bisschen weiter :D

Geschrieben

Hat alles geklappt, dass der find Befehl nicht ausgeführt wurde lag wohl an Berechtigungen die vergessen worden sind...^^

Trotzdem vielen Dank für eure Antworten. =)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...