PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ausführen externe Programme



Dreamers
18-01-2005, 09:28
Hallo erstmal.
Habe ein shell skript denn ich gerne über java starten möchte.
Und irgendwie geht es bei mir nicht.
Habe folgendes gemacht;
Runtime.getRuntime().exec("/bin/sh /orden/wo/prog/ist/ skript")
Was ist da falsch? fehlt mir irgendetwas?
Nutze Linux, für ein Tips währe ich sehr dankbar

Sym
18-01-2005, 09:44
Gibt er einen Fehler aus?

Rätselraten mag ich nicht. :p

Dreamers
18-01-2005, 10:34
sorry.
nein es kommt ja garn nix das ist das problem.
keine fehler und kein start vom Skript

anda_skoa
20-01-2005, 06:50
Da ja im Script normalerweiser der Interpreter drin steht, reicht ansich die Angabe des Scripts, am besten mit vollem Pfad.

Ciao,
_

nul
20-01-2005, 09:55
Vielleicht ist es auch so, dass das Skript nicht fertig ausgefuehrt wird. Mach mal einen Prozess und warte auf den mit waitFor() geht das glaub ich!

ChMaster|LFreak
27-01-2005, 17:49
moin versuchs mal damit:


import java.io.*;

String cmd = "./blabla"; // hier dein programmname rein

try{
Runtime rt = Runtime.getRuntime();
Process p = rt.exec( cmd );
p.waitFor(); // warte solange bis der process beendet ist dann bringe die meldung ;)
System.out.println( cmd + "wurde beendet!" );

}catch(Exception e){
System.out.println(e);
}



String cmd = "./blabla"; // hier dein programmname rein

kann auch

String cmd = "blabla"; // hier dein programmname rein

Gruß
ChMaster|LFreak

bischi
31-01-2005, 20:58
Das Problem an exec ist, dass es so lange geht, wie du keine Parameter übergeben musst - also nur ein Programm starten. Sonst gibt es Probleme und funktioniert (zumindest bei mir) nicht.

MfG Bischi

PS: Vielleicht geht es mit einem einzelnen Argument - beispielsweise dem Namen für ein zu öffnendes Dokument - bin mir da nicht mehr sicher

anda_skoa
01-02-2005, 12:29
Für Programme mit Kommandozeilenargumenten nimmt man auch die exec() Variante mit String Array, sonst kann man sich nicht sicher sein, wie es in der verwendeten Shell ankommt.

Ciao,
_

peschmae
01-02-2005, 18:35
Doch, kann man schon. Die werden einfach durch einen "normalen" StringTokenizer gelassen wie in der Javadoc steht.

Allerdings kann es dann sein dass die Dinger nicht so ankommen wie man es will :)

MfG Peschmä

anda_skoa
01-02-2005, 20:23
Kleiner Widerspruch in sich?


sonst kann man sich nicht sicher sein, wie es in der verwendeten Shell ankommt


Doch, kann man schon.



Allerdings kann es dann sein dass die Dinger nicht so ankommen wie man es will


:D

Ciao,
_

peschmae
01-02-2005, 22:02
Nein. Was ich sagen wollte: Du kannst sicher sein wie es ankommt, nur ist das eventuell nicht das was du willst.

Kleine Spitzfindigkeit aber ich glaub (ausnahmsweise) hab mal ich und nicht du recht. :)

MfG Peschmä