User since
2006-10-19
8
Artikel
BenutzerIn
Hallo,
ich hoffe ihr könnt mir helfen...
Ich habe folgendes Problem: In meinem Perl Skript muss ich an einer Stelle ein konsolenbasiertes Java-Programm starten. Dazu verwende ich:
system(java -jar klasse)
das programm wird auch aufgerufen und ich bekomme den eingabeprompt des java programms. Kurz darauf wird es allerdings beendet und das Perl Skript setzt seine arbeit fort. Der system Aufruf gibt dden returncode 65280 zurück.
Normalerweise sollte eigentlich erst nach dem ende des Java Programms das Perl Skript weiterlaufen.
Der Fehler ist ebenfalls reproduzierbar wenn man die cmd.exe von windows mit system aufruft. Dort sollte das Perl Skript ebenfalls erst nach einem exit im cmd.exe weiterlaufen, beendet die eingabeshell aber vorzeitig.
Danke
User since
2005-01-17
14748
Artikel
Admin1
So gehts nicht!
system("java", "-jar", "klasse")
Rufe mal in der Konsole perldoc -f system auf, dann bekommst du die Infos zu system().
Zudem solltest du bei java und klasse vielleicht den kompletten Pfad eingeben.\n\n
<!--EDIT|GwenDragon|1168440887-->
User since
2006-10-19
8
Artikel
BenutzerIn
Das Problem besteht auch so weiterhin:
Das Javaprogramm wird korrekt gestartet. Dann nach ein paar Sekunden wird es einfach beendet und das Perl Skript läuft weiter...
User since
2005-01-17
14748
Artikel
Admin1
In der Konsole diese Skript aufrufen:
system("javaw", "-jar", "klasse");
$exit_value = $? >> 8;
$signal_num = $? & 127;
$dumped_core = $? & 128;
print "exit with:\nexit_value=$exit_value\nsignal_num=$signal_num\ndumped_core=$dumped_core";
1;
Was wird dann ausgegeben?\n\n
<!--EDIT|GwenDragon|1168444815-->
User since
2003-08-04
14371
Artikel
ModeratorIn
Also das hier funktioniert bei mir:
#!/usr/bin/perl
use strict;
use warnings;
my $test = "calc.exe";
system($test);
print $test;
Bei mir ist nur ein klasse Effekt wenn ich cmd.exe ausführen lasse. Dann öffnet sich keine neue DOS-Box, sondern es bleibt alles im aktuellen Fenster...
User since
2006-11-29
340
Artikel
BenutzerIn
@renee wenn schon ein Konsolenfenster existiert soll auch kein neues geöffnet werden. Ein neues Fenster bekommst du mit start.
MfG PerlProfi
User since
2006-10-19
8
Artikel
BenutzerIn
@gwendragon:
die ausgabe ist:
exit_value=255
signal_num=0
dumped_core=0
Das Javaprogramm startet und beendet sich nach wenigen sekunden von selbst.
Dasselbe Problem tritt auch mit cmd auf...
User since
2003-08-04
14371
Artikel
ModeratorIn
Zeig' mal bitte etwas mehr Code. Bitte Copy&Paste benutzen und nicht abtippen...
User since
2005-01-13
782
Artikel
BenutzerIn
hast du das Javaprogramm schonmal korrekt ohne Perl gestartet?
also mal per Hand den Befehl ausgeführt? :)
User since
2006-10-19
8
Artikel
BenutzerIn
Mehr Code gibt es leider nicht...
Das Perl Programm besteht nur aus dem system() Aufruf und ein paar Print anweisungen danach ... (der rest kommt erst, wenn das Problem behoben ist)
Wenn ich das Java Programm von Hand starte funktioniert alles Problemlos...