Foros del Web » Programación para mayores de 30 ;) » Java »

Pipe

Estas en el tema de Pipe en el foro de Java en Foros del Web. Alguien me puede regalar un ejemplo de cómo emplear un Pipe en java??? Necesito específicamente hacer un llamado a GNUPlot desde JAVA...
  #1 (permalink)  
Antiguo 19/05/2007, 20:05
 
Fecha de Ingreso: octubre-2005
Mensajes: 45
Antigüedad: 18 años, 6 meses
Puntos: 0
Pipe

Alguien me puede regalar un ejemplo de cómo emplear un Pipe en java???

Necesito específicamente hacer un llamado a GNUPlot desde JAVA
  #2 (permalink)  
Antiguo 19/05/2007, 22:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Pipe

Hola:

con Runtime.getRuntime().exec("ejecutable") puedes arrancar otro ejecutable. Esta llamada te devuelve un Process. Al Process puedes pedirle los InputStream y OutputStream, que son los pipes que necesitas.

Aquí tienes un ejemplo con Runtime en el que se leen InputStream y OutputStream del Process.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 20/05/2007, 17:45
 
Fecha de Ingreso: octubre-2005
Mensajes: 45
Antigüedad: 18 años, 6 meses
Puntos: 0
Así no me sirve.

Hasta donde tengo entendido, el Runtime.exec("") lo que hace s un llamado a que se ejecute algo del sistema. Sin embargo lo que necesito es hacer un llamado a GNUPlot por pipes.

O el exec() genera un pipe. La verdad estoy un poco confundido con el tema, porque le mostré a alguien el llamado con exec() y me dijo que eso no eran pipes.

Yo vi una clase llamada Pipe(). Alguien sabe cómo se usa????
  #4 (permalink)  
Antiguo 20/05/2007, 22:08
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Pipe

Hola:

Si lees el enlace que te pasé, veras que exec() devuelve un Process y esta clase tiene los métodos getInputStream() y getOutputStream() que son las conexiones de entrada y salida con el ejecutable que acabas de lanzar.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 21/05/2007, 15:40
 
Fecha de Ingreso: octubre-2005
Mensajes: 45
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Pipe

Si, eso me podría servir de ayuda. Pero lo que necesito específicamente es comunicarme con GNUPlot a trave´s de un pipe. La difrencie de hacerlo con Runtime y con pipe es que con el e´ltimo puedo tener una manupular el pipe más que cuando lo haco ocn un Process. Ahí está la difrencia.

De dotas formas muchas gracias por tu aporte, si puedes darme otro empujon te lo agradecería ya que estoy muy pegado
  #6 (permalink)  
Antiguo 21/05/2007, 23:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Pipe

Hola:

Por favor, se un poco más concreto. ¿Qué quieres decir que puedes manipular un pipe "más" que un InputStream o OutputStream?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 23/05/2007, 19:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 45
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Pipe

Cuando hago un llamado Gnuplot crea una ventana y la muestra. Yo debería poder controlar esa ventana. Por ejemplo, posicionarla en alguna parte de la pantalla, reimprimirla, esconerla, y lo que sería ideal, meterla dentro de un Panel de JAVA
  #8 (permalink)  
Antiguo 08/11/2007, 14:05
 
Fecha de Ingreso: noviembre-2007
Mensajes: 1
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Pipe

hola lumeche quiesiera saber si lograste emplear GNUPLOT en tu programa de Java...?? Es que necesito hacer lo mismo que tu deseabas pero aun no se como! podrias ayudarme!!
  #9 (permalink)  
Antiguo 07/12/2008, 18:19
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Pipe

Hola:

Prueba con algo asi. Un ejemplo usando GNUPLOT, con uso de las "pipas" de entrada, salida y error:

{...
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("gnuplot");
PrintWriter outPlot = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
process.getOutputStream())));

BuffererReader inPlot = new BufferedReader(
new InputStreamReader(
process.getInputStream()));

BuffererReader errPlot = new BufferedReader(
new InputStreamReader(
process.getErrorStream()));

outPlot.println("plot sin(x)"); // ejemplo

outPlot.close();
inPlot.close();
errPlot.close();
...}

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.