Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Methoden und Beispiele für den Aufruf eines eigenen Java-Programms durch PHP
Dieser Artikel stellt hauptsächlich die Methode vor, mit der PHP sein eigenes Java-Programm aufruft, basierend auf dem JAR-Paket eines Drittanbieters und der Verwendung der DLL-Dynamic-Link-Bibliotheksdateierweiterung zum Aufrufen von Java Friends Wer es braucht, kann
wie folgt lauten:
Es ist unnötig zu erwähnen, dass Sie zu Beginn Java Ee 5 + JDK installieren müssen
1 . Laden Sie die php-java-bridge_5.2.2_j2ee.zipExtrahieren Sie sie herunter, es gibt JavaBridge.war Öffnen Sie sie direkt mit winrar, gehen Sie zu WEB-INF /lib/JavaBridge.jar Kopieren Sie dieses JAR-Paket in das ext/-Verzeichnis Ihres PHP-Verzeichnisses.
2. Öffnen Sie das War-Paket. Darin befindet sich ein Java-Ordner. Kopieren Sie alles in Ihr PHP-Projekt, z. B. /demo/java.
3. Die aktuelle Version ist VMBridge Wenn Sie möchten, dass PHP die Java-Klasse aufruft, müssen Sie zuerst JavaBridge starten, java –jar JavaBridge.jar über die
Befehlszeile aufrufen oder auf JavaBridge.jar doppelklicken und im Popup-Fenster den Überwachungsport 8080 auswählen
damit es in Zukunft einfacher startet, habe ich unter ext/ eine neue bat-Datei mit folgendem Inhalt erstellt:
@echo off start javaw -jar JavaBridge.jar
Nach dem Speichern, Doppelklicken Sie zum Starten und es wird ein Eingabeaufforderungsfeld angezeigt, in dem Sie standardmäßig den vmbridge-Port 8080 auswählen können. Klicken Sie einfach auf „OK“
4. Erstellen Sie unter /demo/ eine neue test.php mit dem folgenden Inhalt:
<?php require_once("java/Java.inc"); header("content-type:text/html; charset=utf-8″); // get instance of Java class java.lang.System in PHP $system = new Java('java.lang.System'); $s = new Java("java.lang.String", "php-java-bridge config…<br><br>"); echo $s; // demonstrate property access 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 example $formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz"); print $formatter->format(new Java('java.util.Date')); ?>
5. Starten Sie Apache, sehen Sie sich http://localhost/demo/test.php
im Browser an und Sie werden die folgenden Informationen sehen:
Kopieren Sie den Code Der Code lautet wie folgt:
php-java-bridge config…
Java-Version=1.6.0_10
Java Hersteller=Sun Microsystems Inc.
Betriebssystem=Windows Vista 6.0 auf x86
Sonntag, 23. November 2008 um 16:31:49 Uhr chinesischer Standardzeit
Benutzerdefiniertes JAR:
package ttt; public class phptest{ /** * A sample of a class that can work with PHP * NB: The whole class must be public to work, * and of course the methods you wish to call * directly. * * Also note that from PHP the main method * will not be called */ public String foo; /** * Takes a string and returns the result * or a msg saying your string was empty */ public String test(String str) { if(str.equals("")) { str = "Your string was empty. "; } return str; } /** * whatisfoo() simply returns the value of the variable foo. */ public String whatisfoo() { return "foo is " + foo; } /** * This is called if phptest is run from the command line with * something like * java phptest * or * java phptest hello there */ public static void main(String args[]) { phptest p = new phptest(); if(args.length == 0) { String arg = ""; System.out.println(p.test(arg)); }else{ for (int i = 0; i < args.length; i++) { String arg = args[i]; System.out.println(p.test(arg)); } } } }
Als JAR generieren, auf Laufwerk D kopieren.
/demo/index2.php
<? require_once("java/Java.inc"); java_require("D://1.jar"); $myj = new Java("ttt.phptest"); echo "Test Results are <b>" . $myj->test("Hello World") . "</b>"; $myj->foo = "A String Value"; echo "You have set foo to <b>" . $myj->foo . "</b><br>\n"; echo "My java method reports: <b>" . $myj->whatisfoo() . "</b><br>\n"; ?>
Sehen Sie http://localhost/demo/index2.php in Ihrem Browser an
Methode 2: php_java.dll muss mit php.ini konfiguriert werden. Die neue Version von php-java-bridge enthält keine DLL-Dateien
Bestimmen Sie zunächst Ihre PHP- und Apache-Server und JDK (oder JRE ist ebenfalls verfügbar) wurden installiert
Gehen Sie online und laden Sie php-java-bridge herunter (finden Sie es selbst oder http://sourceforge.net/project/showfiles.php?group_id=117793)
Dekomprimieren Sie die heruntergeladene PHP-Java-Bridge. Nach der Dekomprimierung befindet sich eine JavaBridge.war im Ordner. Dekomprimieren Sie dann die JavaBridge.war auf die gleiche Weise (win rar kann sie dekomprimieren).
Danach Dekomprimierung, Sie können es vom WEB herunterladen – Suchen Sie java-x86-windows.dll im cgi-Ordner im INF-Ordner und JavaBridge.jar im lib-Ordner im WEB-INF-Ordner
java-x86-windows.dll und JavaBridge.jar in den PHP-Plugin-Ordner (in meinem Fall ist es C:/AppServphp/ext) und ändern Sie java-x86-windows.dll in php_java.dll
Ändern Sie die php.ini-Datei
Wenn php.ini ursprünglich nicht den folgenden Inhalt hat, fügen Sie ihn bitte selbst hinzu. Wenn es ursprünglich den folgenden Inhalt hat, ändern Sie ihn bitte wie folgt [Ich verwende JDK]
Erweiterung =php_java.dll
[Java] ;java.java = "C:\jdk1.6.0_13\bin\java" java.class.path = "D:\php\ext\JavaBridge.jar;c:\myclasses" c:\myclasses可自定义,用来存放自己写的JAVA文件 java.java_home = "C:\jdk1.6.0_13\jre" java.library = "d:\jdk1.2.2\jre\bin\server\jvm.dll" java.library.path = "D:\php\ext"
Apache neu starten und phpinfo überprüfen
java java support Enabled java bridge 3.0.8 java.java_home C:\jdk1.6.0_13 java.java C:\jdk1.6.0_13\bin\java java.log_file <stderr> java.log_level no value (use backend's default level) java.ext_java_compatibility Off java command C:\jdk1.6.0_13\bin\java -Djava.library.path=D:\php\ext -Djava.class.path=D:\php\ext/JavaBridge.jar -Djava.awt.headless=true php.java.bridge.JavaBridge INET_LOCAL:0 2 java status running java server 9267
Überprüfen Sie, ob das vorletzte Java-Statuselement nicht ausgeführt wird (dies liegt daran, dass Sie JavaBridge.jar nicht gestartet haben). Wenn es läuft 484a5eed0218672cccd608cace6a1469foo = (string) 12345678; or $myj->foo = "12345678″;
这只是一个很小的例子,你可以创建你自己的 JAVA 类,并使用 PHP 很好的调用它!关键在于理解java.class.path目录的重要性。
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methoden und Beispiele für den Aufruf eines eigenen Java-Programms durch PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!