elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Procesos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Procesos  (Leído 4,577 veces)
rubcr

Desconectado Desconectado

Mensajes: 51


Ver Perfil
Procesos
« en: 18 Noviembre 2020, 11:36 am »

Hola buenas.
Me ha surgido una duda de como programar procesos en java.
Poniendo un ejemplo, ¿como se podría crear un proceso que ejerza como proceso padre y pida una frase por teclado y uno que ejerza como hijo y haga algo con esa frase como invertirla y la muestre?
He visto mucha documentación y no me llega a quedar claro.
Espero que alguien me ayude.
Un saludo.


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Procesos
« Respuesta #1 en: 18 Noviembre 2020, 12:08 pm »

Hola!

La respuesta que dí en este post puede ayudarte: https://foro.elhacker.net/java/programacion_de_procesos-t507778.0.html

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

rubcr

Desconectado Desconectado

Mensajes: 51


Ver Perfil
Re: Procesos
« Respuesta #2 en: 18 Noviembre 2020, 12:17 pm »

Hola!

La respuesta que dí en este post puede ayudarte: https://foro.elhacker.net/java/programacion_de_procesos-t507778.0.html

Saludos!
Gracias por contestar y por tu aportación.  Me podrías ayudar con la sintaxis del programa, porque no me queda nada claro como implementarlo, entiendo lo que se expone pero no sé como aplicarlo en java
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Procesos
« Respuesta #3 en: 18 Noviembre 2020, 12:55 pm »

Gracias por contestar y por tu aportación.  Me podrías ayudar con la sintaxis del programa, porque no me queda nada claro como implementarlo, entiendo lo que se expone pero no sé como aplicarlo en java

Hola!

Has revisado las opciones del post en Stack Overflow? Hay varias. Dependiendo de la que elijas/prefieras, cada una tiene link con referencias a códigos de ejemplo de cómo implementar dichas opciones.

Saludos!

EDIT: De todas formas no soy programador Java per-se. Seguramente otros pueden darte algo más consiso.
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Procesos
« Respuesta #4 en: 19 Noviembre 2020, 06:41 am »

Hola buenas.
Me ha surgido una duda de como programar procesos en java.
Poniendo un ejemplo, ¿como se podría crear un proceso que ejerza como proceso padre y pida una frase por teclado y uno que ejerza como hijo y haga algo con esa frase como invertirla y la muestre?
He visto mucha documentación y no me llega a quedar claro.
Espero que alguien me ayude.
Un saludo.
El funcionamiento es mucho más sencillo de lo que parece. A continuación te explico los pasos de lo que tienes que hacer:
PD: No te voy a dar el programa hecho. Solo te voy a dar un ejemplo de conexión de procesos en Java (que no es poco) y tú tendrás que hacer el resto.

  • Crear las dos clases ejecutables de manera independiente. Ambas clases deben tener su método main() y la clase hija (independiente) debe poder ejecutarse por si sola y funcionar correctamente. Esta última la vamos a crear con un BufferedReader para obtener los datos de la entrada estándar:
Código
  1. public class Independent {
  2.  public static void main(String[] args) {
  3.    try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) { // try-with-resources para cerrar automaticamente el br
  4.      System.out.println("Introduce un numero: ");
  5.      int numero = Integer.parseInt(br.readLine());
  6.      System.out.println(numero * 2);
  7.    } catch(Exception e) {}
  8.  }
  9. }

Ahora tienes que hacer una clase dependiente que lo que hará será ejecutar la clase independiente y mandarle la entrada como si la hubiésemos introducido directamente desde el teclado, después recibirá su salida y la mostrará:
Código
  1. public class Dependent {
  2.  public static void main(String[] args){
  3.    ProcessBuilder pb = new ProcessBuilder("java", "Independent"); // comando para lanzar la otra clase como si se hiciese desde linea de comandos
  4.    try {
  5.      Process p = pb.start(); // iniciamos el proceso
  6.      OutputStream os = p.getOutputStream(); // redireccionamos su ENTRADA a os. Se utiliza output porque se entiende que es la salida del padre
  7.      BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); // redireccionamos su SALIDA (que es la entrada para el padre)
  8.      os.write((4 + "\n").getBytes()); // Simulamos que hemos introducido un 4 por teclado y le hemos dado al enter
  9.      os.flush(); // hacemos que los bytes anteriores se escriban en el flujo. Si no hacemos esto se quedaran en un buffer temporal y no continuara
  10.      // Ahora el programa hijo que ha sido lanzado hace un rato acaba de recibir el flujo anterior como si lo hubiesemos introducido por teclado
  11.      // Ahora "ha mostrado" el resultado (8). Tenemos que recoger su salida mediante br:
  12.      br.readLine(); // Leemos la primera linea de su salida que no interesa (porque es: "Introduce un numero: \n")
  13.      int doble = Integer.parseInt(br.readLine()); // Guardamos el 8 que se habria mostrado por pantalla
  14.      System.out.println("El resultado es: " + doble);
  15.    } catch(Exception e){}
  16.    // ...ahora habria que cerrar flujos y demas...
  17.  }
  18. }

  • Si trabajas desde un IDE es posible que tengas problemas con la instanciación del ProcessBuilder pues tendrás que utilizar un comando de ejecución algo más complejo.
  • Si trabajas en Windows y tu IDE está configurado en UTF-8 tendrás que añadir la codificación a la instrucción.

A partir de aquí te toca continuar a ti y si tienes algún otro problema siempre puedes preguntar pero adjunta lo que tengas hecho. :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Procesos
« Respuesta #5 en: 19 Noviembre 2020, 18:05 pm »

tal cual, como dicen, y aqui mismo en el foro, hay temas bastante sobre como ejecutar procesos bash con java.
En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Procesos
Programación Visual Basic
Thaorius 2 2,184 Último mensaje 15 Julio 2005, 03:28 am
por Thaorius
¡¡¡ver procesos!!!! « 1 2 »
Programación Visual Basic
zerofive 17 5,581 Último mensaje 8 Julio 2006, 21:29 pm
por megateam
Listar procesos y realizar cosas con los procesos
Programación Visual Basic
sebas369 2 3,415 Último mensaje 14 Julio 2006, 16:08 pm
por sebas369
procesos con vb
Programación Visual Basic
kriptonitex 9 2,740 Último mensaje 30 Septiembre 2006, 20:33 pm
por hexabinarios
Id de procesos [VB.NET]
.NET (C#, VB.NET, ASP)
Grave 5 7,277 Último mensaje 6 Diciembre 2007, 15:41 pm
por elmaro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines