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

Ohne mir jetzt arg den Kopf zerbrechen zu wollen, was warum und wie... Vorschlag: mach doch einen redirect vom find in ein tmp-file und lies es nach erfolgreichem find einfach mit java ein.

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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