Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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


    	}


    }


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

  • Autor

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.