【发布时间】:2015-01-21 23:49:30
【问题描述】:
在我的 Java 应用程序中,我使用 exec() 命令来调用终端函数:
p = Runtime.getRuntime().exec(command);
p.waitFor();
调用使用zip 和unzip 调用。原来我叫:
zip -P password -r encrypted.zip folderIWantToZip
当我通过java调用unzip函数时,我将密码指定为方法参数。如果指定了正确的密码,则调用应unzip 加密文件夹:
unzip -P password encrypted.zip
我想要一种方法来查明输入的密码是否不正确。例如,如果password 是正确的,那么调用将正确地unzip 压缩文件。但我注意到密码错误不会引发异常。我如何确定这一点?
【问题讨论】:
-
我要做的第一件事是通过
getInputStream()和getErrorStream()捕获进程的InputStream和ErrorStream,尤其是后者,ErrorStream,如果输入是错误。这些必须在他们自己的线程中完成。另外,不要忽略p.waitFor()返回的 int。
标签: java encryption terminal passwords