java programm läßt sich von website nicht starten.

Status
Nicht offen für weitere Antworten.

l00P

Bekanntes Mitglied
hallo zusammen!

ich denke mein problem hat mit dem pfad was zutun, also folgendes:

ich möchte von einer php-seite aus ein javaprogram starten

mein code:
Code:
system("/usr/lib/java/jre/bin/java /home/wolf/prog1");

Das apache Log meint dazu: java.lang.NoClassDefFoundError

Gleichzeitig kann ich den string der im Systemteil steht aber auf der console ausführen und das geht. Nur nicht vom web aus???


weiß jemand zufällig warum das so ist?

danke schonmal
lg
 
l00P hat gesagt.:
Code:
system("/usr/lib/java/jre/bin/java /home/wolf/prog1");
Gleichzeitig kann ich den string der im Systemteil steht aber auf der console ausführen und das geht. Nur nicht vom web aus???

Auch von der Konsole aus, kommt mir der Aufruf merkwürdig vor :shock:

Was ist denn deine Main-Klasse? Wenn der Aufruf funktionieren soll, dann müßte es ja
prog1.class (prog1 kleingeschrieben) im package home.wolf sein, was ich für äußerst
unwahrscheinlich halte.

Außerdem ist mir nicht klar, was es bringen soll eine Java-Applikation auf dem Server
zu starten. Höchstens, wenn ein Applet über ein Socket mit dieser Verbindung aufnimmt.
 
das stimmt schon so, der Pfad ist natürlich nur symbolisch.... prog1 ist dabei die ausführbare klasse.
Warum soll man denn keine javaapplikation auf dem server starten?? Versteh ich nicht, und mit Applet oder Socket hat das auch nix zu tun.

Hat niemand eine Antwort auf meine Frage warum es von der Konsole aus geht und vom Web nicht?

danke schonmal

lg
 
l00P hat gesagt.:
Hat niemand eine Antwort auf meine Frage warum es von der Konsole aus geht und vom Web nicht?

Wie Leroy42 schon gesagt hatte, scheint deine Klassenangabe nicht zu stimmen. Das java-Binary erwartet einen Klassennamen, keine Dateinamen oder -pfade. Diese Klasse muss main() besitzen und sich im Classpath befinden. "/home/wolf/prog1" ist wohl nicht der korrekte Klassenname.

Wenn derselbe Aufruf von der Console funktioniert hat, wundert mich das.

Versuchs mal mit echtem Klassennamen und ggf. -cp VM Parameter.
 
Wie ich schon geschrieben habe !!!! Der Pfadname ist symbolisch. Und warum sollte es nicht so gehen? prog1 ist die Ausführbare javaklasse mit der mianmethode und die liegt unter /home/wolf/

Statt über die sinnhaftigkeit meines Aufrufes zu diskutieren hätte mir z.B. -wie ich jetzt selber rausgefunden habe weitergeholfen: Du befindest dich vielleicht nicht in dem Verzeichnis von dem du das Programm starten willst deshalb wird die Klasse auch nicht gefunden......

Scheiße nur das ich dafür 2 Tage gebraucht habe. ich habe jetzt einfach ein "cd /home/wolf/" in den system() Befehl von PHP reingepackt. Vorher hatte ich zwar auch ein "cd" aber in einem extra system() was anscheinend nicht funktioniert!

lg
 
l00P hat gesagt.:
Statt über die sinnhaftigkeit meines Aufrufes zu diskutieren ...

Darum geht's nicht. Es ging darum, daß wir dir nicht helfen können, wenn du
falsche Angaben machst. Und daß dein oben angegebener Aufruf ohne vorherigen
Wechsel in das Verzeichnis der Klasse funktioniert, kann halt nicht sein; und du
hast es uns leider verschwiegen, daß du zu Fuß ein Verzeichniswechsel gemacht hast.

lOOP hat gesagt.:
Vorher hatte ich zwar auch ein "cd" aber in einem extra system() was anscheinend nicht funktioniert!

Jeder system-Aufruf erzeugt eine neue Shell, die nach Beendigung verschwindet.
Dein cd hatte schon funktioniert, nur danach hatte diese Shell eben
nichts mehr zu tun und sich verabschiedet.

Naja, wenigstens läufts jetzt 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben