Zum Inhalt springen

Konsolenbefehl über Java aufrufen


abby

Empfohlene Beiträge

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();


    	}


    }


Link zu diesem Kommentar
Auf anderen Seiten teilen

Java Programming: call an exe from Java and passing parameters sollte in die Richtung gehen. Schau dir die Doku zu Process an.

Wenn dein eigentliches Ziel ist, Text in eine Datenbank zu schreiben, würde ich mich auf dieses Ziel konzentrieren (McIlroy: A Quarter Century of Unix)

find /mnt/pres/pdf -type f -iname '*.pdf' | java Testerei

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...