Hi,
ich versuche schon den ganzen Tag eine JAVA Test-Klasse mit PHP zum Laufen zu bekommen.
Zuerst mal die Fakten
Windows XP Professional SP2
PHP Version 4.4.2 unter "D:\Programme\PHP "
Apache Version 2.0.59 unter "D:\Programme\Apache Group\Apache2 "
PHP läuft alles wunderbar, hab alles vor ca. 14 Tagen selber installiert (also nicht XAMPP), sogar die MSSQL und MySQL Datenbanken.
Heute wollte ich wie gesagt mal testen wie ich auf JAVA Klassen zugreifen kann.
In "D:\Programme\PHP\extensions " gibts bei meiner PHP-Version bereits eine Datei "php_java.jar ", d.h. die Extension ist schon da, hab also nix mehr installiert.
Also zur "php.ini" die unter "C:\Windows " liegt.
Ich habe diverse Inhalte folgendermaßen geändert ...
java.class.path muss wie ich gelesen habe auf die php_java.jar zeigen => muss passen
java.home zeigt auf JAVA Installations-Verzeichnis ... "D:\Programme\Java\jre1.5.0_06\" oder "D:\Programme\Java\jre1.5.0_06\bin\" haben auch nicht funktioniert.
java.library muss wohl auf die "jvm.dll" zeigen, zumindest war der Wert vor meinen Änderungen ...
Ich habe also nach "jvm.dll" suchen lassen, und habe sie in obigem Verzeichnis gefunden.
java.library.path muss ich dorthin verweisen lassen, wo das "php_java.jar" File liegt, also "D:\PHP\extensions".
Wenn ich nun dieses Programm laufen lasse ...
... wird die phpinfo() angezeigt
... und danach leider
[COLOR=crimson]Fatal error: java.lang.NoClassDefFoundError: net/php/reflect in H:\Files\Programming\Java\workspace\Site2006\HTML\java.php on line 4[/COLOR]
Es wird offensichtlich die Klasse "reflect" nicht gefunden. Ich habe mal mit winrar in das jar-File gesehen, die Klasse ist drin.
Aber wo kann da das Problem liegen, ich habe gegoogelt bis zum umfallen. Ist ja nicht schwer, eigentlich ...
ich versuche schon den ganzen Tag eine JAVA Test-Klasse mit PHP zum Laufen zu bekommen.
Zuerst mal die Fakten
Windows XP Professional SP2
PHP Version 4.4.2 unter "D:\Programme\PHP "
Apache Version 2.0.59 unter "D:\Programme\Apache Group\Apache2 "
PHP läuft alles wunderbar, hab alles vor ca. 14 Tagen selber installiert (also nicht XAMPP), sogar die MSSQL und MySQL Datenbanken.
Heute wollte ich wie gesagt mal testen wie ich auf JAVA Klassen zugreifen kann.
In "D:\Programme\PHP\extensions " gibts bei meiner PHP-Version bereits eine Datei "php_java.jar ", d.h. die Extension ist schon da, hab also nix mehr installiert.
Also zur "php.ini" die unter "C:\Windows " liegt.
Ich habe diverse Inhalte folgendermaßen geändert ...
Code:
... ;Windows Extensions ;Note that MySQL and ODBC support is now built in, so no dll is needed for it. ... extension=php_java.dll ... [Java] java.class.path = "D:\PHP\extensions\php_java.jar"; java.home = "D:\Programme\Java\"; java.library = "D:\Programme\Java\jre1.5.0_06\bin\client\jvm.dll"; java.library.path = "D:\PHP\extensions";
java.home zeigt auf JAVA Installations-Verzeichnis ... "D:\Programme\Java\jre1.5.0_06\" oder "D:\Programme\Java\jre1.5.0_06\bin\" haben auch nicht funktioniert.
java.library muss wohl auf die "jvm.dll" zeigen, zumindest war der Wert vor meinen Änderungen ...
Code:
... ;java.library = c:\jdk\jre\bin\hotspot\jvm.dll ...
java.library.path muss ich dorthin verweisen lassen, wo das "php_java.jar" File liegt, also "D:\PHP\extensions".
Wenn ich nun dieses Programm laufen lasse ...
Code:
<?php phpinfo(); // In PHP Instanz der Java Klasse java.lang.System erzeugen $system = new Java('java.lang.System'); // Zugriff auf die Objekteigenschaften print 'Java version='.$system->getProperty('java.version').' <br>'; print 'Java vendor=' .$system->getProperty('java.vendor').' <br>'; print 'OS='.$system->getProperty('os.name').' '. // $system->getProperty('os.version').' on '. // $system->getProperty('os.arch').' <br>'; // java.util.Date Beispiel $formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz"); print $formatter->format(new Java('java.util.Date')); ?>
Code:
... ...........................................................................java........................................................................... Directive..............................Local Value..........................................Master Value java.class.path..............D:\PHP\extensions\php_java.jar.........................D:\PHP\extensions\php_java.jar java.home.........................D:\Programme\Java\.....................................D:\Programme\Java\ java.library..............D:\Programme\Java\jre1.5.0_06\bin\client\jvm.dll ..........D:\Programme\Java\jre1.5.0_06\bin\client\jvm.dll java.library.path.........................D:\PHP\extensions.........................D:\PHP\extensions ...
[COLOR=crimson]Fatal error: java.lang.NoClassDefFoundError: net/php/reflect in H:\Files\Programming\Java\workspace\Site2006\HTML\java.php on line 4[/COLOR]
Es wird offensichtlich die Klasse "reflect" nicht gefunden. Ich habe mal mit winrar in das jar-File gesehen, die Klasse ist drin.
Aber wo kann da das Problem liegen, ich habe gegoogelt bis zum umfallen. Ist ja nicht schwer, eigentlich ...