Heim >Backend-Entwicklung >PHP-Tutorial >Häufige Konfigurationsfehler, wenn PHP Java-Klassen aufruft
Ich habe mich schon lange nicht mehr mit der PHP-Entwicklung beschäftigt. Ich habe kürzlich ein ursprüngliches Projekt geändert, um den Aufruf von Java-Klassen zu unterstützen, und habe zuerst das Konfigurationsproblem gelöst. Reden Sie nicht zu viel. Es gibt viele Artikel im Internet, aber sie enthalten viele falsche Dinge. Im Folgenden werde ich den gesamten Prozess meiner Konfiguration vorstellen und mit Ihnen teilen. Wenn Sie Fragen haben, können Sie sich gerne an mich wenden und ich werde Ihnen helfen löse es.
Hinweis: Die Normalität dieses Artikels ist nur für die in diesem Artikel bereitgestellten Versionen von PHP und JDK garantiert. Wenn es Probleme gibt, kontaktieren Sie uns bitte rechtzeitig Wir sind bereit, mit Ihnen zusammenzuarbeiten, um die relevanten Probleme zu lösen.
Die Arbeit der Installation und Konfiguration von PHP wird hier übersprungen
Testumgebung: Windows2003+IIS+PHP Version 4.3.6+JDK 1.4.1_01
Ich werde zuerst auflisten Die falschen Konfigurationen im Internet werden wie folgt aufgelistet:
Fehlerkonfiguration 1
java.home = D:j2sdk14101
Das Fehlerergebnis lautet wie folgt:
D:j2sdk14101 kann nicht geöffnet werden \libtzmappings.
Lösung:
java.home = D:j2sdk14101jre
Fehlerkonfiguration 2
java.class.path="C:PHPextensionsphp_java.jar;x:Java-Klassendateispeicherverzeichnis
Das Fehlerergebnis lautet wie folgt:
Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion für ein Nicht-Objekt in E:inberkongpublic_htmlphproottestjava.php online
Fehlergrund: Die Java-Klassendatei des Benutzers ist nicht im gespeichert x:Java-Klassendateispeicherverzeichnis oder das x:Java-Klassendateispeicherverzeichnis existiert nicht
Lösung: 1 Stellen Sie sicher, dass java.class.path = "C:PHPextensionsphp_java.jar;x:Java-Klassendatei im richtigen Verzeichnis gespeichert ist Verzeichnis
2 Stellen Sie sicher, dass sich in diesem Verzeichnis eine von PHP aufgerufene Klassendatei befindet und stellen Sie sicher, dass sie korrekt ist. Die korrekte Konfiguration von
lautet wie folgt:
Schritt 1: Stellen Sie sicher, dass die Umgebung korrekt ist
Die obige Standardumgebungskonfiguration ist korrekt
PHP-Verzeichnis: C:PHP
JDK-Verzeichnis: D:j2sdk14101
Schritt 2
Suchen Sie php.ini unter C:WINDOWS
1 Suchen Sie extension_dir und konfigurieren Sie es, um sicherzustellen, dass sich php_java.jar in seinem Verzeichnis php_java.dll befindet.
extension_dir = " D:PHPextensions"
2 Suchen Sie extension=php_java.dll und entfernen Sie es Semikolon vor diesen Konfigurationsinformationen
extension=php_java.dll
3 Suchen Sie den konfigurationsbezogenen Inhalt nach [java] in der Datei
[Java]
java.class.path ="C:PHPextensionsphp_java. jar;C:PHPphp_for_class"
java.home = D:j2sdk14101jre
java.library = D:j2sdk14101jrebinserverjvm.dll
java.library.path = C:PHPextensions
Schritt 3
Schreiben Sie eine Java-Datei, kompilieren Sie sie und platzieren Sie sie in C:PHPphp_for_class
Test.java. Die Datei lautet wie folgt:
package Test;
public class Test
{
public String getMessage(String dd)
{
return "Hallo PHP! Ich komme aus JAVA."+ dd;
}
}
Schreiben Sie eine PHP-Datei testjava.php und rufen Sie die Testklasse im Testpaket auf
$system = new Java(" java.lang.System"); print "Java version=".$system->getProperty("java.version")."
n"; print "Java seller=" $system->getProperty("java.vendor ")."
nn";
print "OS=".$system->getProperty("os.name")." version")." auf ".
$system->getProperty("os.arch")." SimpleDateFormat","EEEE,MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java .util.Date"))."< br>
n";
$b=new Java("Test.Test");
echo $x;
show Ergebnis:
Java version=1.4.1_01
Java-Anbieter=Sun Microsystems Inc.
Donnerstag, 12. Januar 2006 um 15:00:51 Uhr China Standard Time
Hallo PHP, ich bin von JAVA. PHP Chinesische Website (www.php.cn)!