Sto provando ad eseguire un comando shell da un'applicazione java, sulla piattaforma GNU/Linux. Il problema è che lo script, che chiama un'altra applicazione java, non finisce mai, sebbene venga eseguito correttamente da bash. Ho provato a eseguire il debug:Esecuzione comandi shell da Java
(gdb) bt #0 0xb773d422 in __kernel_vsyscall() #1 0xb7709b5d in pthread_join (threadid=3063909232, thread_return=0xbf9cb678) at pthread_join.c:89 #2 0x0804dd78 in ContinueInNewThread() #3 0x080497f6 in main()
Ho provato con: ProcessBuilder(); e Runtime.getRuntime(). exec (cmd);
Sembra che aspetti che qualcosa finisca. Qualche idea?
Grazie, Laurenţiu
Sta dicendo che il secondo programma Java si prevede di finire in fretta, ma il guscio invoca ancora si aggira? Hai confermato che il secondo processo Java è effettivamente terminato (lista dei processi di cheking)? –
Sì Ho controllato l'elenco dei processi e il processo è ancora lì. Penso che dsmith abbia risposto alla mia domanda. –
Sembra che la classe Process di Java sia terribilmente lenta. Ho avviato l'applicazione java dalla shell con parametri di produzione (non dettagliati) e l'ho terminata dopo un po '. –