我需要在java中读取一些错误消息,我试图在getErrorStream中执行此操作然后读取readLine,但我得到了exeption。
答案 0 :(得分:2)
TrueCrypt不是您的Java程序,并且Java没有合理可行的方式来访问另一个程序的对话框来阅读该消息。
如果TrueCrypt将文本输出到其标准错误, getErrorStream()
将起作用,但由于它有一个对话框向用户显示它没有理由这样做。
如果TrueCrypt失败,它可能会返回非0退出状态,您可以通过使用Runtime.getRuntime().exec("TrueCrypt.exe")
来捕获它,等待生成的进程完成(使用Process.waitFor()
),然后检查退出状态你到达那里。但是,您仍需要某人(或其他人)为您点击 Ok 按钮。
答案 1 :(得分:0)
你不能
该错误消息显示在操作系统的窗口管理器上,该窗口管理器不可读。
您尝试从标准错误读取操作失败,可能是因为该应用程序首先没有写入标准错误。
答案 2 :(得分:0)
Truecrypt的源代码可用,因此您可以修改它以输出到stdout / stderr。