Ayuda con funciones de shell en PHP

Iniciado por ericksav22, 8 Enero 2013, 08:44 AM

0 Miembros y 1 Visitante están viendo este tema.

ericksav22

Hola a todos, necesito su ayuda con las funciones que efectúa PHP sobre el shell como exec, system o shell_exec y mi duda es la siguiente:

Cuando yo llamo estás funciones de PHP para que me ejecuten algo en terminal solamente ejecutan el primer proceso y se cierran por decir si yo hago un programa en java y quiero compilarlo y ejecutarlo desde la terminal pero con PHP si se puede, pero solamente cuando solo imprimen algún texto como por decir:

public class Main{
  public static void main(String[] args){
      System.out.println("Hola mundo");
  }
}


va todo bien y en la variable se guarda la cadena resultante "Hola mundo" pero cuando quiero hacer un programa un poco mas dinámico como:


import java.util.Scanner;
public class Main{
  public static void main(String[] args){
      Scanner in = new Scanner(System.in);
      System.out.println("Hola ingresa un número:");
      int n = in.nextInt();
      System.out.println("El número ingresado es: "+n);
      in.close();
  }
}


cuando lo ejecuto mediante shell con el comando shell_exec o exec como la primer línea es solamente "Hola ingresa un número" solamente eso se guarda en la variable y yo quiero que se ejecute todo el proceso entero, poder insertar los datos y ver la última línea de "El número ingresado es: 5" por ejemplo y no se cómo hacerlo, he buscado funciones y la que creo que puede ayudarme es proc_open aunque no la entiendo muy bien, ¿Alguien me puede ayudar?

EFEX

Hola, no manejo java, pero como nadie te respondio... haber si este enlace te sirve

Integrate PHP and Java Applications with Oracle WebLogic Server and Zend Server 5.0
http://www.oracle.com/technetwork/articles/dsl/oracle-java-zend-server-152557.html

Y detenete en este codigo, utiliza System.out.println solo una sola vez quizas por eso no imprime el siguiente texto.

Código (java) [Seleccionar]

public class Menu
{
  private static String[] myArray = {"eggs", "hamburgers", "tomato soup", "chicken pot pie",
                                     "spaghetti bolognese", "ice cream", "chocolate chip cookies",
                                     "grilled sole"};

  public static void main(String[] args)
  {
    Menu m = new Menu();
    System.out.println(m.getMenu());
  }

  public static String getMenu()
  {
    String menu = "Today's menu is: ";
    for (int i = 0; i < 3; i++) {
      int r = (int)(Math.random() * (myArray.length - 1));
      menu += myArray[r];
      if (i != 2) {
        menu += ", ";
      }
    }
    return menu;
  }
}


Y mas abajo, utilizan una clase para php-java, aqui tenes mas info sobre la extension. (http://ar2.php.net/java)

Código (php) [Seleccionar]

<?php
// initialize custom Java class and invoke class method
$m = new Java("Menu");
echo 
$m->getMenu();
?>

GITHUB 

ericksav22

Muchas gracias por tu respuesta, lo malo es que no estoy buscando eso, lo que yo trato de hacer es por medio de php compilar código de otros lenguajes, poder ejecutarlo e insertarle datos para testearlo pero este tema es muy raro y yo no tengo muchos conocimientos acerca del el :/