Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5735[/thread]

Rambo: JAVA Aufruf in Perl

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Rambo
 2003-09-18 12:59
#53633 #53633
User since
2003-08-14
803 Artikel
BenutzerIn

user image
Hallo,
ich habe eine BAT Datei die ein JAVA Programm startet:
Code: (dl )
1
2
3
4
5
6
7
8
9
rem ==================
rem JAR file pathes
rem ==================
set CLASSPATH=%PICTURES_HOME%\classes;
set CLASSPATH=%PICTURES_HOME%\lib\appfw.jar;
set CLASSPATH=%CLASSPATH%%PICTURES_HOME%\lib\pixx.jar;
set CLASSPATH=%CLASSPATH%%PICTURES_HOME%\lib\pixxclient.jar;

"%JAVA_HOME%\java" -cp %CLASSPATH% com.lsy.pixx.PixxClient

dies möchte ich zwecks Erweitung in ein Perlscript machen

kann mir jemand sagen wie ich das machen muss.

Hintergrund ist das ich das Script Zeitgesteutert und X mal
aufrufen möchte. Das ganze soll zum schluss eine Client
Simulation werden die X mal den Server anfragt

bis her hab ich folgendes
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$jre_path = "D:\\WIN32APP\\JAVA_141_01";
$pixx_path = "F:\\PIXX_TOOLS\\IA_TEST\\1.5.1.00.27";
$appexecutable = $jre_path . "\\BIN\\JAVA.EXE";
@wks_name = qw(R1
              R2
              R3);


for $wks_name (@wks_name) {
        $appparameters = $appexecutable . ' -cp ' .
                         $pix_path . ';'.
                         $pix_path . '\\CLASSES;'.
                         $pix_path . '\\ETC;'.
                         $pix_path . '\\CONFIG;'.
                         $pix_path . '\\LIB\\servertester\\loggingpatch;'.
                         $pix_path . '\\LIB\\servertester\\servertester.jar' .';'.
                         $pix_path . '\\LIB\\appfw.jar' .';'.
                         $pix_path . '\\LIB\\pixx.jar' .';'.
                         $pix_path . '\\LIB\\pixxclient.jar' . ';'.
                         $pix_path . '\\LIB\\pixxcsresources.jar' . ';'.
                         $pix_path . '\\LIB\\orbix2000.jar'. ';'.
         ' com.lsy.pixx.server.test.Tester $wks_name servertester\\tester.cfg';
                         }


danke schon mal
gruß remo
Crian
 2003-09-18 13:17
#53634 #53634
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Hmmm ich seh nicht genau, wie die beiden zusammenhängen sollen, aber auf jeden Fall definierst Du unten $pixx_path, benutzt aber $pix_path... verwende use strict; das vermeidet viele Probleme, auch solche Tippfehler.

Systembefehle kannst Du in Perl mit system oder qx() absetzten.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Rambo
 2003-09-18 13:24
#53635 #53635
User since
2003-08-14
803 Artikel
BenutzerIn

user image
ja habe ich schon gesehen!
habe eben auch use strict und warnings benutzt!
resultat ist jetzt, dass ich keine meldung mehr bekomme :-)

eigentlich kann es nicht so schwer sein,
man sagt welche JAR files zum start angezogen werden sollen
und start JAVA mit diesen parametern.

aber irgendwie bekomme ich es nicht hin.

na mal sehen .

meric
fürti remo
Crian
 2003-09-18 14:00
#53636 #53636
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Naja, da oben fehlt der Java-aufruf ja noch völlig, poste doch mal Deinen aktuellen stand und sage was geht und was nicht.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Rambo
 2003-09-18 14:14
#53637 #53637
User since
2003-08-14
803 Artikel
BenutzerIn

user image
hier der aktuelle code
use strict darf ich nicht verwenden

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#$jre_path = "D:\\WIN32APP\\JAVA_141_01";

$pix_path = "F:\\PIXX_TOOLS\\IA_TEST\\1.5.1.00.27";
$appexecutable = "D:\\WIN32APP\\JAVA_131_04\\BIN\\JAVA.EXE";

#$appexecutable = $jre_path . "\\BIN\\JAVA.EXE";
#@wks_name = qw(R1R2R3);


#for $wks_name (@wks_name) {
       $appparameters = $appexecutable . ' -cp ' .
                         $pix_path . ';'.
                         $pix_path . '\\CLASSES;'.
                         $pix_path . '\\ETC;'.
                         $pix_path . '\\CONFIG;'.
                         $pix_path . '\\LIB\\servertester\\loggingpatch;'.
                         $pix_path . '\\LIB\\servertester\\servertester.jar' .';'.
                         $pix_path . '\\LIB\\appfw.jar' .';'.
                         $pix_path . '\\LIB\\pixx.jar' .';'.
                         $pix_path . '\\LIB\\pixxclient.jar' . ';'.
                         $pix_path . '\\LIB\\pixxcsresources.jar' . ';'.
                         $pix_path . '\\LIB\\orbix2000.jar'.
         ' com.lsy.pixx.server.test.Tester REMO1 servertester/tester.cfg'.
                     
# start pictures...
   Win32::Process::Create($ProcessObj,
                          $appexecutable,
                          $appparameters,
                          0,
                          NORMAL_PRIORITY_CLASS,
                          '.')|| die ErrorReport();

   

als antwort bekomme ich
F:\PIXX_TOOLS\IA_TEST\1.5.1.00.27>Usage: java [-options] class [args...]
          (to execute a class)
  or  java -jar [-options] jarfile [args...]
          (to execute a jar file)

where options include:
   -hotspot      to select the "hotspot" VM
                 If present, the option to select the VM must be first.
                 The default VM is -hotspot.

   -cp -classpath <directories and zip/jar files separated by ;>
                 set search path for application classes and resources
   -D<name>=<value>
                 set a system property
   -verbose[:class|gc|jni]
                 enable verbose output
   -version      print product version and exit
   -showversion  print product version and continue
   -? -help      print this help message
   -X            print help on non-standard options

also kann er hier die classen wohl noch nicht finden.

aber ich bin ein stück näher dran

fürti remo
Crian
 2003-09-18 15:35
#53638 #53638
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Aha, Du willst nicht system nehmen, sondern Win32::Process::Create.

Wer oder was untersagt Dir denn den Gebrauch von use strict?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Rambo
 2003-09-18 16:03
#53639 #53639
User since
2003-08-14
803 Artikel
BenutzerIn

user image
perl lieferte mir eine Meldung zurück das ich Strict nicht verwenden darf aber da habe ich wohl was verkehrt gemacht!
Jetzt funktioniert das script bis auf einen kleinen Fehler.
Er nimmt mein Array nicht an aber ich denke das bekomme ich auch noch raus.
hier mal der Code mit dem ARRAY fehler
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use strict;
use Win32;
use Win32::Process;

my $pix_path = "F:\\PIXX_TOOLS\\IA_TEST\\1510027";
my $appexecutable = "D:\\WIN32APP\\JAVA_131_04\\BIN\\JAVA.EXE";
my $ProcessObj = ();
my @wks_name = qw(REMO1
REMO2
REMO3);

for my $wks_name (@wks_name) {
my $appparameters = $appexecutable . ' -cp ' .
$pix_path . ';'.
$pix_path . '\\CLASSES;'.
$pix_path . '\\ETC;'.
$pix_path . '\\CONFIG;'.
$pix_path . '\\HELP;'.
$pix_path . '\\LIB\\appfw.jar' .';'.
$pix_path . '\\LIB\\pixx.jar' .';'.
$pix_path . '\\LIB\\pixxclient.jar' . ';'.
$pix_path . '\\LIB\\pixxcsresources.jar' . ';'.
$pix_path . '\\servertester\\loggingpatch;'.
$pix_path . '\\servertester\\servertester.jar' . ';'.
$pix_path . '\\LIB\\orbix2000.jar' .
' com.lsy.pixx.server.test.Tester $wks_name servertester//tester.cfg';

Win32::Process::Create($ProcessObj,
$appexecutable,
$appparameters,
1,
NORMAL_PRIORITY_CLASS,
'.')|| die ErrorReport();
}


danke für deine hilfe!
remo
Ronnie
 2003-09-18 17:42
#53640 #53640
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
ist vieleicht keine gute Idee dass das Array und die Variable den gleichen Namen haben?!
format_c
 2003-09-18 17:56
#53641 #53641
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@ronni: das ist durch aus erlaubt.
Quote
Code: (dl )
              ' com.lsy.pixx.server.test.Tester $wks_name servertester//tester.cfg';


Ich tippe mal auf die Verwndung der Quotingzeichen.
innerhalb von '' wird keine interpolation vorgenommen im Gegensatz zu ""
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use strict;
use warnings;
my $var = 'tralala';

print "$var\n";
print '$var';

tralala
$var


Ersetz doch mal bitte die ' Quotingzeichen durch ". zumindest in der Zeile wo nicht der Name der Variable stehen soll sondern der Inhalt.

Gruß Alex
Rambo
 2003-09-18 18:30
#53642 #53642
User since
2003-08-14
803 Artikel
BenutzerIn

user image
also ich weis nicht warum aber ich dachte das hätte ich so ziemlich als erstes ausprobiert und es ging nicht!

aber jetzt geht es nachdem ich es mit "" gemacht habe!

vielen vielen dank
fürti remo
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2003-09-18 12:59.