1

我创建了基于 JAVA SWT 的 GUI,它与外部 C++ 可执行文件交互。我的 GUI 使用 ProcessBuilder 调用这个 c++ 进程。在 C++ 进程可执行文件中,我重载了信号函数(CTRL+c、CTRL+D)。我的问题是如何从 Java SWT GUI 将 CTRL+C 发送到这个外部 C++ 进程中?我尝试了链接中提供的 Runtime.getRuntime().exec((kill SIGINT pid):“如何从 Java 向外部进程发送 SIGINT 信号? ”来自 java 代码。我也尝试从 shell 控制台发送 kill SIGINT pid当 C++ 进程正在执行并且有时似乎没有响应时。调用 kill SIGINT 本身是否有问题?谁能提供替代解决方案来实现这一点?提前致谢。

4

1 回答 1

2

如果您尝试SIGINT从控制台向您的进程发出信号,但它没有反应,那么这与 Java 无关,但您的进程只是不处理此信号。

尝试发送更激进(不可忽略)的SIGKILL信号。

于 2013-06-30T09:00:51.983 回答