Heim >Backend-Entwicklung >PHP-Tutorial >Häufige Konfigurationsfehler, wenn PHP Java-Klassen aufruft

Häufige Konfigurationsfehler, wenn PHP Java-Klassen aufruft

黄舟
黄舟Original
2016-12-15 14:30:501448Durchsuche

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");

$x=$b-> getMessage("
Hallo Java!");

echo $x;

?>

show Ergebnis:
Java version=1.4.1_01
Java-Anbieter=Sun Microsystems Inc.

Betriebssystem=Windows XP 5.2 auf x86

Donnerstag, 12. Januar 2006 um 15:00:51 Uhr China Standard Time

Hallo PHP, ich bin von JAVA. PHP Chinesische Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn