# Ausführen von Linux-Programmen



## Sandohan (7. Aug 2004)

Hi, ich möchte ein Linuxprogramm in der art starten: xmms /meinverz/meinlied. Das Problem ist wenn das verzeichnis leerzeichen oder Sonderzeichen enthält geht das nicht. Z.b. geht "xmms /mein verz/meinlied" nicht auch wenn ich das Verzeichnis so angebe "xmms '/mein verz/meinlied' " geht es nicht. Obwohl es funktioniert wenn ich das in der LInuxshell eingebe, aber mit Runtime.exec(" xmms '/mein verz/meinlied' ") nicht.

hilfe :cry:


----------



## Felix (8. Aug 2004)

stelle deine Frage mal unter www.linux-web.de. Da wird dir sicher weitergeholfen.

MFG
Felix


----------



## Anubis (8. Aug 2004)

Die Einfachte Methoe ist es die Lerr oder sonderzeichen in den Verzeichnissen sein zu lassen.


----------



## Guest (8. Aug 2004)

Danke werds mal probieren.


----------



## thE_29 (9. Aug 2004)

die frage ist, seitwann unterstützt linux leerzeichen im namen?

das wäre mir nämlich neu  zumindest bei ordnern!


----------



## Anubis (9. Aug 2004)

Mit dem konqueor lassne sich solche Datei und verzeichniss namen erstellen, aber die werden vom System missverstanden ein aufruf von 
	
	
	
	





```
java /mein verz/prog
```
 wird folgendermaßen verstanden:

```
Befehl:
java

Parameter:
/mein
verz/prog
```

Damit hatte ich auch mal Probleme.


----------



## P3AC3MAK3R (9. Aug 2004)

Versuche mal die jeweiligen Leerzeichen mit Backslashes ("\") zu maskieren.


----------



## Sandohan (11. Aug 2004)

Es gibt noch einen Runtime.getRuntime.exec() aufruf der als Parameter ein Array hat. Wenn ich da als erstes Item xmms und als zweites das Verzeichnis dann funzt es  . Jetzt hab ich nur noch das Problem dass mein Hauptprogramm stehen bleibt, bis ich das daraus gestartete Programm beendet hab. Bei Display gibt es ja eine Methode asyncexec dich ich verwende und die eigentlich dazu da ist beide Threads gleichzeitig laufen zu lassen. Hier ist mal meine Methode:

```
private void getRunnable(final String cmd, final String path){
        Runnable runnable =  new Runnable(){                    
            public void run(){
                System.out.println(cmd+" "+path);                
                Process p ;		
        		try {        			
        			String[] test2 = {cmd, path};
        		    p = Runtime.getRuntime().exec(test2);
        			BufferedReader in = new BufferedReader(
        					new InputStreamReader(p.getInputStream()) );
        			
        			String s;
        			String ausgabe = "";

        			while ( (s = in.readLine()) != null ) {
        				ausgabe = ausgabe.concat(s);
        			}        			
        		} catch (IOException e1) {
        			e1.printStackTrace();
        		}                        
            }
        };
        mainShell.getDisplay().asyncExec(runnable);
}
```


----------

