Programm aus Java starten

naeko

Mitglied
Hallo,

ich hab folgendes Problem: ich möchte ein Perl-Script aus Java starten. An sich ist das kein Problem:
Code:
Runtime a = Runtime.getRuntime();
Process p = a.exec("C:\\perl myperlScript.pl");

Nur ist es so dass mein Perl-Script ein Perl-Modul inkludiert und dieser wird bei der Ausführung vom Java-Code nicht gefunden, obwohl er im gleichen Verzeichnis liegt wie der Perl-Script selbst.
Ein Workaround ist: Script samt Modul unter System.getProperty("user.dir") abzulegen, dann läufts, aber leider ist diese Lösung inakzeptabel für mich

Weiß jemand wie man das sonst realisieren könnte?
 
Bin kein Perl-Experte, aber gibt's keinen Parameter über den sich so ein Include-Verzeichnis angeben lässt?

edit: Hab schnell nachgesehen: -I<directory> sollte weiterhelfen.
 
Zuletzt bearbeitet:
Tja, java ruft das teil zwar auf aber aus dem context von user.dir wie du richtig gesehen hast.

versuch mal den umweg über eine batch datei, dass sollte eigentlich gehen. Quick and dirty ;)
 
leider geht es auch mit der batch datei nicht, oder meintest du es anders, also ich ruf jetzt praktisch ein batch-Datei aus Java auf. Diese Datei hat den Inhalt "perl myscript.pl"..........und der Fehler ist wieder der gleiche.
 
Ich kenne mich mit Perl zwar nicht aus, aber liegt es vielleicht dann vielleicht an deinem Perl-Script und nicht an Java bzw der Batch-Datei?

MFG

Sascha
 
nein,
wenn ich den Perl-Script aus der Shell aufrufe dann funktioniert alles einwandfrei: das Problem ist folgendes:

mein perl-script kann ich über einen absoluten (bzw. relativen Pfad) direkt in Java angeben, wohingegen das Perl-Modul in dem Pfad gesucht wird wo ich den Aufruf mache:
also ruf ich mein perl via D:\perl\myperl.pl auf (wird mein script gefunden), das Perl-Modul liegt im gleichen Verzeichnis wird aber nicht dort sondern unter System.getProperty("user.dir"), (z.B. C:\\eclipse\workspace\) gesucht.
Da ich am Perl selber nix machen darf, muss ich irgendwie versuchen sowohl das Script als auch das Modul aufzurufen.................nur will es noch irgendwie nicht richtig:mad:
 
Schau dir mal den ProcessBuilder in Java an, da kannst du dein Pfad in dem gearbeitet wird angeben.

MFG

Sascha
 
Zurück