从Java运行时运行Linux命令

时间:2017-10-31 15:37:19

标签: java linux unix gpgpu gnupg

有人可以帮我解决如何使用Runtime.getRuntime()。exec()从java程序运行gpg加密命令吗?

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

gpg -u'accepter'-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命令。

1 个答案:

答案 0 :(得分:0)

如果您的主机上正确安装了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