Java 将命令确认发送到windows控制台
我已成功地从java调用Windows控制台,使用zlib解压字符串,如下所示:Java 将命令确认发送到windows控制台,java,windows,console,zlib,Java,Windows,Console,Zlib,我已成功地从java调用Windows控制台,使用zlib解压字符串,如下所示: Runtime rt = Runtime.getRuntime(); rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ ")); Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("c
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
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");
在这之后,我被问到是否要覆盖该文件,我必须指出是,但我不知道在执行命令后如何从java执行该操作
我怎么做
谢谢您可以像这样响应控制台提示:
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
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");
您可以像这样响应控制台提示:
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
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");
我发现了如何使用-r命令解决它
rt.exec("cmd.exe /c start z -d -r psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
这样我就替换了文件,而不询问是否需要我发现了如何使用-r命令解决它
rt.exec("cmd.exe /c start z -d -r psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
这样我就替换了文件,而不询问是否需要您是否真的使用了相当旧的zlib二进制文件?我的建议是:要么获取当前的解压程序,要么使用Java库进行解压缩。您是否检查过是否有一个参数告诉zlib以静默方式覆盖?如果没有,您可以将“y”写入进程的输出流。您真的使用了相当旧的zlib二进制文件吗?我的建议是:要么获取当前的解压程序,要么使用Java库进行解压缩。您是否检查过是否有一个参数告诉zlib以静默方式覆盖?如果没有,您可以将“y”写入processThk的输出流以获得回复。我试过新的PrintWriter,但没用。这可能是因为控制台来自zLib本身吗?是的,这样您只能通过操作系统提供给每个进程的stdin和stdout进行通信,而不是通过应用程序的UI。在ZLIB的特定情况下,您可以直接从Java使用它,如这里所述:Thk用于回复。我试过新的PrintWriter,但没用。这可能是因为控制台来自zLib本身吗?是的,这样您只能通过操作系统提供给每个进程的stdin和stdout进行通信,而不是通过应用程序的UI。在ZLIB的特定情况下,您可以直接从Java使用它,如下所述: