Anzeige:
Ergebnis 1 bis 11 von 11

Thema: ausführen externe Programme

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.11.2004
    Beiträge
    13

    ausführen externe Programme

    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

  2. #2
    Registrierter Benutzer Avatar von Sym
    Registriert seit
    05.09.2002
    Ort
    Bremen
    Beiträge
    278
    Gibt er einen Fehler aus?

    Rätselraten mag ich nicht.
    Denk mal drüber nach...

    Lars

    ACHTUNG: ersetze Linux durch GNU/Linux an den entsprechenden Stellen
    www.macuser.de, MSVC2005 Express und Qt, Qt/Mac installieren

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.11.2004
    Beiträge
    13
    sorry.
    nein es kommt ja garn nix das ist das problem.
    keine fehler und kein start vom Skript

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Da ja im Script normalerweiser der Interpreter drin steht, reicht ansich die Angabe des Scripts, am besten mit vollem Pfad.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    377
    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!
    Amilo D - 2,8 Ghz - ATI Radeon 9000
    Debian GNU/Linux 3.1 (Sarge)

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.10.2003
    Ort
    Bayern
    Beiträge
    70
    moin versuchs mal damit:
    Code:
    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

  7. #7
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    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

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  8. #8
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  9. #9
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Kleiner Widerspruch in sich?

    Zitat Zitat von anda_skoa
    sonst kann man sich nicht sicher sein, wie es in der verwendeten Shell ankommt
    Zitat Zitat von peschmae
    Doch, kann man schon.
    Zitat Zitat von peschmae
    Allerdings kann es dann sein dass die Dinger nicht so ankommen wie man es will


    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •