我在使用 java ProcessBuilder 时遇到了一些问题。我想得到我的 gpg 密钥,所以我使用以下代码:
ProcessBuilder builder = new ProcessBuilder("C:\\[path]\\GnuPG\\pub\\gpg.exe", "--list-keys");
//builder.directory(new File("C:\\[path]\\GnuPG\\pub\\"));
Process process = builder.start();
Scanner s = new Scanner(process.getInputStream()).useDelimiter("\\Z");
System.out.println(s.next());
s.close();
但是在执行 s.next() 时,我总是得到 NoSuchElementException。如果我使用 gpg 命令“-h”,我总是得到预期的输出。
如果我将构造函数调用更改为
new ProcessBuilder("cmd", "/c", "C:\\[path]\\GnuPG\\pub\\gpg.exe", "--list-keys");
它有时有效。但大多数时候并没有。
为什么?任何人都可以帮忙吗?谢谢!!