Tengo un programa que se usa ProcessBuilder
para ejecutar un programa diferente. Mi código se ve así:
public class runMultiClient {
public static void main(String[] args){
if (args[0].matches("-f")){
String dir = System.getProperty("user.dir");
String path = dir + "\\" + args[1];
FileReader fr;
try {
fr = new FileReader(path);
BufferedReader bf = new BufferedReader(fr);
String line = "";
Process PR = null;
while ((line = bf.readLine()) != null){
String[] tk = line.split(" ");
String[] cmd = {"javaw", "-jar", "ntripClient.jar", "-a", tk[0], "-p", tk[1],
"-u", tk[2], "-pw", tk[3], "-m", tk[4], "-t", tk[5], "-s", tk[6]};
ProcessBuilder pb = new ProcessBuilder(cmd);
PR = pb.start();
}
PR.waitFor();
}
catch (FileNotFoundException ex) {ex.printStackTrace();}
catch (IOException ex) {ex.printStackTrace();}
catch (InterruptedException ex) {ex.printStackTrace();}
}
}}
Ejecuto este programa desde cmd. Excepto un nombre para el archivo de inicio que contiene datos en cada fila. En base a este archivo se supone que se crean varios procesos.
Sin embargo, no funciona sin problemas. En este momento tengo 2 filas en el archivo de inicio, lo que significa que deberían haberse iniciado dos procesos. Lo que realmente hizo fue iniciar el primer proceso, luego lo detuvo y comenzó el segundo en su lugar. Otro problema es que no sé cómo finalizar el proceso, parece que se está ejecutando en segundo plano y no aparece en el administrador de tareas. Crtl+ Cy Ctrl+ Breakno funcionan.
El objetivo principal es ejecutar varios procesos al mismo tiempo y poder interrumpir el proceso cuando sea necesario. ¿Qué me estoy perdiendo? ¿Cómo soluciono este problema? Cualquier ayuda sería apreciada.
Sin poder reproducir esto (por falta del JAR del sujeto), probablemente esté sucediendo una de tres cosas:
Algunas cosas para probar:
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras