1

我使用 Apache 的 commons exec 库从我的 java 代码在 windows 上运行另一个应用程序。那个其他应用程序(tshark)可能会抛出一个丑陋的异常,使窗口弹出“一个未处理的 win32 异常发生在 ...”窗口。有没有办法在我的java代码中吞下那个异常,所以用户不会遇到那个窗口?

4

1 回答 1

0

有没有办法在我的java代码中吞下那个异常,所以用户不会遇到那个窗口?

嗯,不容易。

如果tshark/wireshark 在您想摆脱的窗口弹出时向stderr写入一些内容,那么当您检测到stderr上的任何匹配字符串时,您可能能够销毁()您刚刚生成的进程(这将摆脱 tshark/完全使用wireshark,而不仅仅是不需要的窗口)。

其他任何事情都是可行的,例如自动关闭错误窗口,但这需要更多的工作(例如使用 JNA 查找窗口标题并关闭您想要摆脱的 tshark/wireshark 异常窗口)。

于 2011-02-14T10:12:12.920 回答