2015-10-15 93 views
1

我已經成功地被稱爲從Java Windows控制檯使用zlib的這樣解壓縮的字符串:發送命令確認Windows控制檯

Runtime rt = Runtime.getRuntime(); 
    rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ ")); 

這個我之後問我是否要覆蓋文件,我不得不小心指出是的,但我不知道如何從java執行該命令後再執行此操作。

我該怎麼辦呢?

感謝

+0

你真的使用相當老的zlib二進制文件嗎?我的建議是:獲取當前的解壓縮程序或使用Java庫進行提取。你有沒有檢查是否有一個參數告訴zlib默默覆蓋?如果不是,您可以將「y」寫入流程 – Marged

回答

0

我發現瞭如何使用-r命令

rt.exec("cmd.exe /c start z -d -r psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ ")); 

這樣我更換來解決它文件沒有問我是否想要

0

您可以在控制檯提示時這樣迴應:

 Runtime rt = Runtime.getRuntime(); 
    Process proc = rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ ")); 
    new PrintWriter(proc.getOutputStream()).println("y"); 
+0

Thk的輸出流以供您答覆。 我已經嘗試過新的PrintWriter,但不起作用。它可能是因爲控制檯來自zLib本身? – Lopez

+0

對,這樣你就只能通過操作系統提供給每個進程的stdin和stdout進行通信,而不能通過應用程序的UI進行通信。在ZLIB的特殊情況下,您可以直接從Java中使用它,如下所述:http://docs.oracle.com/javase/7/docs/api/java/util/zip/package-summary.html – dimplex