运行 来自 Java 运行时的 Linux 命令

Running command for Linux from Java runtime

谁能帮助我如何使用 Runtime.getRuntime().exec() 从 java 程序 运行 gpg 加密命令?

我想要的示例命令 运行 如下所示:

gpg -u 'receipient' -r KeyID --armor --output /home/myuser/tmp/check.pgp --sign --passphrase '&sw@217' --batch --encrypt /home/myuser/tmp/check.txt*

当我尝试从我的 Java 程序中执行它时,它给出了类似 "usage: gpg [options] [filename]"

的错误

请帮助解决此错误和 运行 来自 java 程序的上述 gpg 命令。

如果 gpg 二进制文件正确安装在您的主机上,以下代码应该可以解决您的问题。

Process p = new ProcessBuilder("gpg -u 'receipient' -r KeyID --armor --output /home/myuser/tmp/check.pgp --sign --passphrase '&sw@217' --batch --encrypt /home/myuser/tmp/check.txt*".split(" "))
.inheritIO()
.start();

p.waitFor();

我没有正确的设置,但此代码按预期运行。您可以在这里尝试:https://tech.io/snippet/VzJtME0