Ejecutar Código Java En PHP Y Viceversa

Higarigaoka - Odaiba, Sin comentarios
Hola!

Esto es realizar un híbrido entre los dos lenguajes.

La interoperabilidad entre lenguajes Java y PHP es muy deseable para cualquier desarrollador, y sería ideal contar con alguna manera de hacer que estos dos lenguajes trabajen juntos de manera transparente ¿y para que queremos esto? bueno, hay muchísimas opciones, entre las que podemos destacar:

reuso de componente ya existentes, pero en otro lenguaje

le agregamos funcionalidad a nuestras aplicaciones mediante herramientas que nos dan otros lenguajes. Por ejemplo, podemos tener código PHP con multithreading (gracias a Java) o usar la enorme potencia de las excepciones de java, no disponible en versiones más viejas de PHP.
Aprovechamos la eficiencia para ejecutar código PHP desde dentro de Java.

Para realizar esto utilizaremos PHP/Java Bridge, una potente herramienta que nos permite ejecutar instanciar clases java y ejecutar su código desde PHP, y viceversa. Esto lo hace de manera muy sencilla, e incluso no es necesario conocer Java (o php, dependiendo del caso) para utilizarlo.

En distribuciones derivadas de Debian, como Ubuntu, que utilizan .deb como sistema de paquetes, la instalación es también muy sencilla. Asumiendo que ya tenemos apache y php5 instalado, instalamos los siguiente programas para tener todas las dependencias satisfechas:

sudo apt-get install libitext-java liblucene-java php5-cli

Luego, descargamos el archivo php-java-bridge_5.2.2-1_i386.deb (recomiendo ir a la página de descargas para ver si hay una versión más nueva). Luego abrimos una consola y escribimos:

cd DIRECTORIO_DONDE_DESCARGAMOS_EL_ARCHIVO

sudo dpkg -i php-java-bridge_5.2.2-1_i386.deb

Listo, con esto ya lo tenemos instalado. ¿cómo se usa?

Supongamos que tenemos la siguiente clase Java:

import java.util.*;
import java.text.*;
 
public class HolaMundo {
 
public String saludarAlMundo() {
  Date hoy = new Date();
  return "Hola amigos, hoy es " + hoy;
}

 }



Desde PHP, podemos usarla asi:


<?phpjava_require ("/var/classes");  //directorio donde tenemos las clases Java$java_obj = new Java("HolaMundo");// llamamos al metodo saludarAlMundo$str $java_obj->saludarAlMundo();
echo 
$str;

?>

Opción 2:
En PHP escribimos esto:

<?php

$variable = system("java -cp C:\prueba\prueba.jar Prueba");

//para el envio de parametros es 
$variable = exec("java -cp C:\prueba\prueba.jar Prueba ".$pass.", ".$passEncrypt."");

?>

En un clase en Java llamada Prueba realizamos el main y lo que este llevara:

package prueba;
/**
 *
 * @author jonatan.echeverry
 */
//A CONTINUACION LA CLASE PRINCIPAL
public class Prueba {

public static void main(String jm[]){
System.out.println("Hola \nEsto es una prueba de conexión lenguajes Java + PHP.");

}
}


Fuente:

0 comentarios :

Publicar un comentario