【发布时间】:2011-03-04 23:42:43
【问题描述】:
我正在尝试在 GNU/Linux 平台上从 java 应用程序执行 shell 命令。问题是调用另一个 java 应用程序的脚本永远不会结束,尽管它从 bash 成功运行。我尝试调试它:
(gdb) BT #0 0xb773d422 在 __kernel_vsyscall () #1 0xb7709b5d 在 pthread_join (threadid=3063909232, thread_return=0xbf9cb678) 在 pthread_join.c:89 #2 0x0804dd78 在 ContinueInNewThread () #3 0x080497f6 in main()我尝试过:ProcessBuilder();和 Runtime.getRuntime().exec(cmd);
看起来它在等待某事完成。有什么想法吗?
谢谢, 劳伦修
【问题讨论】:
-
您是说第二个 Java 程序预计会很快完成,但调用它的 shell 仍然挂起?您是否确认第二个 Java 进程实际上已经完成(检查进程列表)?
-
看起来 Java 中的 Process 类非常慢。我使用生产(非详细)参数从 shell 启动了 java 应用程序,并在一段时间后完成。
-
是的,我检查了进程列表,进程仍然存在。我认为 dsmith 回答了我的问题。
标签: java shell command-line