Ausführen von Linux-Programmen

Status
Nicht offen für weitere Antworten.
S

Sandohan

Gast
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:
 

Anubis

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

thE_29

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

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

Anubis

Bekanntes Mitglied
Mit dem konqueor lassne sich solche Datei und verzeichniss namen erstellen, aber die werden vom System missverstanden ein aufruf von
Code:
 java /mein verz/prog
wird folgendermaßen verstanden:
Code:
Befehl:
java

Parameter:
/mein
verz/prog

Damit hatte ich auch mal Probleme.
 
S

Sandohan

Gast
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 :D . 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:
Code:
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);
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben