Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Mit PHP ein Objekt aus einer Class-Datei ziehen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Mit PHP ein Objekt aus einer Class-Datei ziehen


 
Phobos
30-10-2007, 11:11 
 
Hallo,

ich habe wieder ein Problem in Bezug auf PHP (Version 4.4.7) und Java, dass ich gerne lösen möchte. Erstmal die Frage: Ist es überhaupt möglich, aus Class-Dateien PHP-Objekte zu ziehen?
Wenn ja: wie mache ich das?

Ich habe in der Klasse Test.class nichts anderes als einen leerstehenden Constructor und eine ebenfalls leerstehende Main-Methode (Es geht ja nur darum, dass erstmals nur ein Objekt einer Klasse gezogen wird)



public class Test {

public Test() {
}

public static void main(String[] args) {
}



Das dazugehörige PHP-File openclass.php enthält folgenden Code:



<?php
$system = new Java('Test');
?>


Beide Dateien liegen im selben Verzeichnis C:\xampp\htdocs\testzweck


Beim Aufrufen der PHP-Datei bekomme ich folgenden Fehler:

Warning: java.lang.ClassNotFoundException: Test in C:\xampp\htdocs\testzweck\openclass.php on line 2

An der VM kann es nicht liegen, da manch andere Java-Zugriffe von PHP aus funktionieren. Also ist davon auszugehen, dass die Klasse
Test.class nicht gefunden werden kann.
Das Verzeichnis C:\xampp\htdocs\testzweck,
wo sowohl Test.class als auch openclass.php drinnen sind, sind sowohl im Classpath als auch im Path eingetragen.
Dennoch die Fehlermeldung.

Ich habe auch versucht, beim PHP-Aufruf ein ".class" dahinterzuhängen, also so:



<?php
$system = new Java('Test.class');
?>



Das löst das Problem jedoch immernoch nicht und ich finde einfach keine Literatur, wo sowas erklärt wird. Weiß jemand von euch weiter?

 
jahlives
30-10-2007, 11:39 
 
Hast du die Klasse mal direkt in Java ausgeführt, also ohne PHP? Funzt sie dann? Oder beschwert sich Java dann ebenfalls?

 
jahlives
30-10-2007, 11:45 
 
Ergänze deine Main Methode noch um eine Ausgabe und teste direkt in Java

public class Test {
public static void main(String[] args){
System.out.println( "Hallo Welt" );
}
}

kompilieren nicht vergessen und testen

Gruss

tobi

 
Phobos
30-10-2007, 11:51 
 
Danke für die schnelle Antwort. Das Problem besteht leider immernoch.

Ich habe deinen Code eingebaut, Java selbst macht damit keine Probleme und gibt bei der Ausführung schön Hallo Welt aus (Compilieren und Ausführung geschah von der Kommandozeile aus, also mit javac und java, es wurde keine Entwicklungsumgebung a la Eclipse verwendet)
PHP jedoch bringt immernoch die gleiche Fehlermeldung.

 
jahlives
30-10-2007, 12:04 
 
Funzt denn das folgende?

$system = new Java('java.lang.System.out');
echo $system->println('Hallo Welt');

 
Phobos
30-10-2007, 13:07 
 
Original geschrieben von jahlives
Funzt denn das folgende?

$system = new Java('java.lang.System.out');
echo $system->println('Hallo Welt');



Funzt auch nicht. Stattdessen kommt die Fehlermeldung




Warning: java.lang.ClassNotFoundException: java.lang.System.out in C:\xampp\htdocs\testzweck\openclass2.php on line 2

Fatal error: Call to a member function on a non-object in C:\xampp\htdocs\testzweck\openclass2.php on line 3


Ich verstehe aber nicht, warum des nicht funzt, denn Codes wie folgender funktionieren:

<?php
$system = new Java('java.lang.System');
echo 'Java version=' . $system->getProperty('java.version');
?>

 
Phobos
05-11-2007, 11:06 
 
Habe ich irgendwas Falsches geschrieben?


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:06 Uhr.