estoy teniendo un pequenio proyecto en java que es simular una consola o shell en java
quiero decir que los programas hechos en consola con System.out.println() y toda la cosa por consola no sea en un CMD que sea a travez de esa ventana, pero al momento de ingresar datos pues
el objetivo es que sea realista la shell, con realista me refiero a que cuando requiera datos se pause la ejecucion hasta que uno pulse ENTER, reciva la el valor y lo almacene una variable
no e decifrado todavia como hacerlo
si me podrian ilustrar para terminar este proyecto personal
pensaba ponerlo en un thread.stop y cuando dar enter continuarlo, eso puedo, pero para que se almacene en la variable
el truco de esto es tener solo 2 funciones en la shell, solo el println() para mostar y el read() para guardarlo en la variable y con eso seria todo
alguna idea?
Explicate claro... me perdi en el instante donde Yao Ming empezo a cantar opera.
Nunca debes afrontar un problema directamente, desglosa el problema en pequeñas partes y luego ve realizando cada una de las partes.
Si alguien te ayuda, pues aprenderá, pero si tiendes a buscar una persona externa para solucionar problemas que no puedes solucionar es un muy mal habito y evitara tu desarrollo.
Para todo lo que quieras hacer, existirá una solución te lo aseguro. Solo sigue pensando compañero.
Saludos.
es simplemente un simulador del cmd para aplicaciones por consola, asi ya no pondrias el "system.out.blah blah blah" y solo se pondria "consola.println()" para ahorrar tecladasos
no quiero que me hagan el problema, es mas bien como un "ustedes como le harian para hacer esto?"
la problematica es
"en tiempo de ejecucion, como le harian para que se detenga la ejecucion (osea una pausa) y ustedes escriban cualquier cosa por ejemplo asdasdadsads (quiero decir que lo que sea) y que al presionar enter, agarre lo que escribiste y lo ponga en una bariable y continue la ejecucion"
eso es lo que pasa cuando ingresas datos via consola, se detiene la ejecucion, ingresas algo, pulsas enter y continua
alguna ayuda?
lo del print podrias cambiarlo a imprimir y con un if si esta presente la palabra imprimi entoces toma lo que esta dento de "" algo como esto:
imprimir("Saluda");
if(consola.contains(imprimir)){
consola.remplace(imprimir\(\");
consola.remplace(\"\)\;):
System.out.println(consola);
}
algo como esto es solo un ejemplo no es un codigo funcional pero asi podrias hacerle jejeje es solo una idea de un novato y podrias poner algun mensaje si algun comando no es valido
mira podes hacer esto
String so = System.getProperty("os.name");
String cmd = txtinput.getText().tostring;
// Ejecutamos cmd
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader bufRInput = new BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(
p.getErrorStream()));
// Leemos la salida
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
es mas podes dividirlo en 2 clases, o hacer un modelo vista controlador, tomar los comandos por un jdialog o jframe y mandarlos a la clase EjecucionComando.java por medio de getter y setter y que esto devuelva el array y lo muestras en el textArea de tu Form, Espero haberte dado una idea!
pues si habia pensando en el runtime, pero el problema, es que pues, puedo mostrar salida, pero ingreso de datos como?
e llamado a "cmd" con el runtime pero le mando los mensajes via strings que son los que entran, pero esto es llamar al cmd
lo que busco es sumularlo
para mostar un mensaje solamente le damos un setText();
pero para ingresar datos desde esa consola, habia pensado guardar la longitud de caracteres que tiene con la que tiene despues de ingresar algo (osea dando enter), la diferencia es lo que se ingreso (con eso detecto cuantos dijitos escribi)
pero en tiempo de ejecucion como detenerla, esperar a que se escriba algo, al pulsar enter continuar, hacer la deteccion de caracteres y lo que sobra ponerlo en una variable
un poco complejo, tengo una idea pero quisiera escuchar consejos para ver una forma mas simple o funcional o simplemente mas loca
saludos