我使用Apache的commons exec库从windows上的java代码运行另一个应用程序。另一个应用程序(tshark)可能会抛出一个丑陋的异常,这会导致窗口弹出“在...中出现未处理的win32异常”窗口。 有没有办法在我的java代码中吞下该异常,所以用户不会遇到那个窗口?
答案 0 :(得分:0)
有没有办法在我的java代码中吞下该异常,所以用户不会遇到那个窗口?
好吧,不容易。
如果 tshark / wireshark在 stderr 中写了一些东西,当你想摆脱弹出窗口时,那么你就可以 destroy()< / em>当您在 stderr 上检测到任何匹配的字符串时,您刚刚生成的进程(这将完全摆脱tshark / wireshark,而不仅仅是不需要的窗口)。
其他任何东西都是可行的,比如自动关闭错误窗口,但这需要更多工作(比如使用JNA查找Windows标题并关闭你想要摆脱的tshark / wireshark异常窗口)。