我有一个简单的Java程序,它启动一个oclHashcat(实际上是cudaHashcat)进程并尝试与已启动的进程通信。 从过程中读取输出工作正常,但我似乎无法写入过程。
演示代码,显示我正在尝试做的事情:(按程序中的s应显示当前操作的状态,但没有任何反应
public class CudaHashcat {
public static void main(String[] args) throws IOException {
ProcessBuilder builder = new ProcessBuilder("cudaHashcat64.exe", "-m", "0", "-b");
builder.redirectErrorStream(true);
builder.redirectInput(Redirect.PIPE);
builder.redirectOutput(Redirect.INHERIT);
final Process process = builder.start();
new Thread() {
@Override
public void run() {
try {
Thread.sleep(2000);
System.out.println("Writing to hashcat process"); // this shows up just fine
process.getOutputStream().write('s');
process.getOutputStream().flush();
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
};
}.start();
}
}
感谢您的帮助!