PHP peut interagir avec Java. Un programme PHP a la capacité de profiter des potentialités de la plateforme Java. Ainsi, les paquetages, les classes, les méthodes et les attributs sont accessibles à l'aide de l'extension Java.
L'extension Java est disponible dans la bibliothèque PECL (PHP Extensions Community Library). Cette extension contient trois fichiers:
Toutefois, cette extension tend à devenir obsolète. C'est pourquoi, le module PHP/Java bridge remplacera à terme l'extension expérimentale Java.
L'installation du pont Java/PHP nécessite en premier lieu son téléchargement sur le site de PHP et l'installation de la machine virtuelle Java (J2SE : Java 2 Standard Edition ou J2EE : Java 2 Enterprise Edition).
Ensuite, il faut compiler PHP avec la directive --with-java[=Répertoire Installation]. Le répertoire d'installation est celui du kit de développement Java (JDK : Java Development Kit). La bibliothèque php_java.dll doit être placée dans le répertoire /php/ext/ avec les autres extensions PHP.
La procédure d'installation pour Windows passe par la copie du fichier php_java.dll dans le répertoire système (C:\WIN(DOWS|NT)\SYSTEM[32]). Il peut être nécessaire de modifier des variables d'environnement, en l'occurrence PATH et CLASSPATH.
PATH = C:\J2SDK_1.4.x\bin;... CLASSPATH = "C:\J2SDK_1.4.x\lib\php_java.jar; C:\J2SDK_1.4.x\lib;C:\J2SDK_1.4.x;..."
La modification de ces variables peut se faire par l'intermédiaire de l'onglet Avancé des Propriétés du Poste de travail Windows ou en ligne de commande.
Les deux fichiers Jar peuvent être placés dans le répertoire des bibliothèques Java (ex.: J2SDK_1.4.x\lib) ou être placé dans le répertoire des extensions PHP.
Enfin, le fichier de configuration php.ini doit être modifié afin d'activer l'extension Java. Il suffit de supprimer le caractère point-virgule devant la ligne extension=php_java.dll.
Dans le fichier php.ini, les options de configuration de l'extension Java doivent être ajoutées et renseignées soigneusement pour tous les systèmes d'exploitation.
[Java] ;Répertoires des classes de l'extension et de Java java.classpath = "C:\JDK\lib\php_java.jar;C:\JDK\lib;C:\JDK" ;Répertoire des fichiers binaires Java java.java_home = "C:\JDK\bin" ;Référencement du fichier jvm.dll java.library = "C:\JDK\bin\client\jvm.dll" ;Répertoire des bibliothèques Java java.libpath = "C:\JDK\lib" ;Exécutable Java java.exe java.java = "C:\Dev\J2SDK_1.5.x\bin\java" ;Le niveau des messages d'erreur, par défaut 1 ;0 : Journal désactivé, 4 : Journal en mode déboguage java.log_level = 4 ;Le chemin vers le fichier Journal java.log_file = "C:\Dev\PHP\ext\JavaBridge.log" ;Le nom ou le numéro de socket java.socketname = 9267 ;Le nom de l'hôte pour l'exécution des servlets ;java.hosts = "127.0.0.1:8080" ;Activation (On) ou désactivation (Off) des servlets ;java.servlet = On
Maintenant, il serait opportun de vérifier si le module Java a bien été installé et correctement pris en compte par PHP. L'exécution de la fonction phpinfo() doit faire apparaître la commande de configuration --with-java=Répertoire dans la rubrique Configure Command pour les systèmes Unix, et une rubrique Java avec les directives de configuration du fichier php.ini.
Normalement l'extension a été parfaitement installée mais le pont Java/PHP n'a pas du être démarré. Si en testant du code, le message ci-dessous est retourné, tel est le cas.
Fatal error: php_mod_java(52): Could not connect to server: No error -- Have you started the java bridge and set the java.socketname option?
Pour résoudre ce problème, il faut exécuter le fichier JavaBridge.jar.
java -jar JavaBridge.jar [INET:9267 4 JavaBridge.log]
Cette action a pour effet de lancer le pont Java/PHP et de créer le fichier journal spécifié dans les options de configuration du fichier php.ini. Les deux arguments finaux ne sont pas nécessaires s'ils sont présents dans le fichier de configuration php.ini.
Sommaire