ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
2086
2086
EMPFEHLEN
-
15.11.04 13:10 #1
Wie kann ich aus Perl/Cgi ein Java Programm starten?
Ich weiß schon das ich dabei das Perl/Cgi Script den Classpath meiner VM kennen muss allerdings habe ich keine Ahnung von Cgi/Perl so das ich nicht weiß wie ich dem Script diesen angebe. Dazu muss ich noch wissen wie ich das Programm dann starte und wie ich zum Beispiel Werte aus GET oder POST mit an das java programm übergeben kann. Würde mich sehr freuen über entsprechende Code Fragmente oder auch Links wo ich etwas darüber finden kann. Bin mittlerweile ziemlich verzeifelt und habe schon einige Stunden gegoogelt aber entweder nach falschen Begriffen oder es gibt einfach nichts. Resultat war das ich nichts gefunden habe
MFG Steff
-
Beispielcode:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#! /usr/bin/perl use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); my $cgi = CGI->new(); # initialisiere neues CGI-Objekt my %params = $cgi->Vars(); # lese die Parameter aus GET oder POST print $cgi->header(-type => 'text/html'); # gebe Header aus print $cgi->start_html(); my $java_file = '/path/to/java_file'; my $java_path = '/irgendwas/java'; open(S_JAVA,"$java_path $java_file $params{parameter_fuer_java} $params{noch_ein_parameter} |") or die $!; while(my $line = <S_JAVA>){ # so lange das Java-Prog. Ausgaben macht print $line,"<br />"; # gebe sie aus... } close S_JAVA; print $cgi->end_html();
-
16.11.04 13:38 #3
Noch ein paar kurze Fragen zu dem Script:
1. $java_file ist die datei die ich ausführen will ist das richtig?
2. $java_path der Classpath der JVM
3. $params{parameter_fuer_java} die Parameter aus Get bzw. Post
Danke fuer die Hilfe. MFG Steff
P.s. kann man den Pfad zu den Dateien nur relativ oder auch absolut angeben? Und funktioniert das alles so auch unter windows?
-
1.) richtig
2.) richtig
3.) richtig (bzw. _ein_ Parameter mit dem Namen "parameter_fuer_java")
4.) kann man sowohl absolut als auch relativ angeben. Läuft auch unter Windows.
-
17.11.04 09:42 #5Code :
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
#!D:\webserver\perl\bin\perl.exe use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); my $cgi = CGI->new(); # initialisiere neues CGI-Objekt my %params = $cgi->Vars(); # lese die Parameter aus GET oder POST my $method = $ENV{'REQUEST_METHOD'}; my $query_string = $ENV{'QUERY_STRING'}; my $content_length = $ENV{'CONTENT_LENGTH'}; print $method,"<br/>"; print $query_string,"<br/>"; print $content_length,"<br/>"; print $cgi->header(-type => 'text/html'); # gebe Header aus print $cgi->start_html(); my $java_file = 'D:\webserver\htdocs\ProPra\cgi-bin\Props'; my $java_path = 'D:\webserver\htdocs\j2sdk\bin\java'; open(S_JAVA,"$java_path $java_file $method $query_string $content_length") or die $!; while(my $line = <S_JAVA>){ # so lange das Java-Prog. Ausgaben macht print $line,"<br />"; # gebe sie aus... } close S_JAVA; print $cgi->end_html();
Kannst du mir vieleicht sagen wo hier mein Fehler ist? Wäre echt super.
Bekomme immer nen Fehler von wegen invalid Argument on line 23.
Greetz Steff
-
Da fehlt noch die Pipe am Ende des Aufrufs (siehe meine Beispielcode)!
-
17.11.04 10:16 #7
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Nur eine Anmerkung:
Wenn die Seite viel aufgerufen wird, solltest du dies nicht machen. Denn jedesmal wenn das Programm gestartet wird, startet auch gleich eine komplette Virtuelle Maschiene.
Das kann sich katastrophal auf die Performance auswirken wenn 20 Virtuelle Maschienen laufen.
Hast du den Quellcode (oder API zugriff) dann handle das Java Programm lieber innerhalb eines Servlet Containers ab. Denn da läuft die VM permanent und muss nicht gestartet werden.Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
17.11.04 13:25 #8
Danke fuer die Antworten das Problem ist das wir vom Programmier Praktikum an der Uni her das so machen sollen und kein Servlet schreiben sollen daher muss ich es so machen. Es wird wohl auch keine Seite die viele Leute gleichzeitig besuchen werden. Da es sich eher darum handelt zu zeigen wie man eine Gui mit einem html Interface austauschen kann.
Greetz Steff
Ähnliche Themen
-
Wie kann man mit hilfe von java aus einer HTML datei eine datei starten
Von AppleSeed im Forum JavaAntworten: 1Letzter Beitrag: 05.03.08, 15:10 -
Java Programm ohne Java starten ?
Von Frankster im Forum JavaAntworten: 9Letzter Beitrag: 04.08.05, 15:49 -
perl externes programm starten & prozess
Von pking im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 17.05.05, 07:48 -
perl-programm per icon starten
Von hudo im Forum Microsoft WindowsAntworten: 3Letzter Beitrag: 04.12.03, 12:14 -
[HTML / JS] Wie kann ich mit HTML / JavaScript ein Programm starten?
Von Andreas Gaisbauer im Forum Webmaster FAQAntworten: 0Letzter Beitrag: 05.08.03, 16:01





Zitieren
Login





