Shellscript aus Java-Code starten?
Torsten
- programmiertechnik
Hallo,
das Thema passt vielleicht nicht ganz in dieses Forum, hat ja aber mit Netzwerkprogrammieren zu tun ;-)
Ich muß in meinem Java-Programm einen FTPClient starten. Diese loggt sich auf einem Server ein. Um aber nun an alle Verzeichnisse und Daten zu gelangen, ist es notwendig, ein Shellscript zu starten das die view mountet.
Wie ist sowas möglich? Oder hab ich über Java die Möglichkeit einen Befehl auf der eingeeloggten Maschine auszuführen? Und wenn ja wie? Und wo muß sich dieses Script befinden? Kann ich es unter meinem Project-Ordner lassen und von da aus ausführen, falls sowas überhaupt möglich ist?
MFG
Torsten
Hallo Torsten,
Mit der Methode Runtime.exec kannst Du andere Anwendungen starten.
Wenn Du da nicht sehr gut aufpasst, verspielst Du damit aber natürlich die Plattformunabhängigkeit. Es ist vermutlich geschickter, irgend eine Java-Bibliothek für FTP zu verwenden.
Grüße
Daniel
Hallo,
ich habe schon nach verschiedenen Java-Bibliotheken geschaut. Habe aber noch keine gefunden, bei der ich dann auf dem eingeloggten Server (Unix Sun Solaris) als User einen Befehl ausführen kann.
Ich bräuchte halt nur irgend eine Möglichkeit, wenn ich mit per FTPClient eingeloggt habe über client.login(...) einen Befehl auszuführen, um eine view zu mounten.
Was für Möglichkeiten gibt es da überhaupt? Ist die mit dem Shell die günstigste oder kennt jemand eine Java-Bibliothek mit Methoden die es erlauben dann Befehle auszuführen?
MFG
Torsten
Ahso, wichtig wäre vielleicht noch das das Java-Programm momentan auf einem Windows XP-System lääuft bzw. ich das gerade dort programmiere...
Torsten
Hallo Torsten,
Hab mich mal kurz umgeguckt und das hier gefunden:
< http://jvftp.sourceforge.net/>
Laut API-Doku kann das Ding auch beliebige Komandos an den Server senden außerdem steht es unter LGPL, dadurch kannst Du das auch für kommerzielle Software verwenden, mögliche Fehler selbst beheben und die API nach bedarf erweitern.
Grüße
Daniel
Danke, ich hatte auch mal nach verschiedenen FTP-Klassen gesucht, aber nur kostenplichtige Projekte gefunden.
Danke für den Link, ich denke das müßte gehen. Kann das erst morgen auf Arbeit ausprobieren. Wenn es dich interessiert kann ich dir bzw. hier ja noch mal posten ob es funktioniert hat.
MFG
Torsten
Hm, mit diesem FTPClienten ist es wie mit allen anderen auch, sie erlauben bzw. haben keine methode oder funktion zum absetzten von userspezifischen kommandos :-(
Hallo Torsten,
Die beschreibung der Methode Ftp.command(String) hört sich aber verdammt danach an.
Die entsprechende Antwort des Servers kannst Du, wie es aussieht über Ftp.getContext().setConsole(...) abfangen.
Grüße
Daniel
Das dachte ich auch erst, er bringt aber immer als Fehlermeldung entweder command not implemented oder command not understood
Hallo Torsten,
Ich würde mal den Datenverkehr mitschneiden und gucken, was da tatsächlich passiert und das mit dem Verhalten deines FTP-Programms vergleichen, bei dem es ja funktioniert.
Außerdem würde ich mal ein Blick in den Code werfen und gucken, ob man das schnell selbst implementieren kann.
Ansonsten bleibt Dir halt nur der Weg, Dein FTP-Programm über Runtime.exec aufzurufen.
Grüße
Daniel
Jepp, da wird mir wohl nix anderes übrig bleiben.
Danke für die Hilfe.
Grüße
Torsten