【问题标题】:Running command for Linux from Java runtime [duplicate]从 Java 运行时运行 Linux 的命令 [重复]
【发布时间】:2017-10-31 15:37:19
【问题描述】:

谁能帮助我如何使用 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 命令。

【问题讨论】:

  • 你试过什么代码?你测试过命令本身吗?
  • 你的代码在哪里?
  • Runtime.exec 已过时。使用ProcessBuilder。此外,如果您没有在问题中显示代码,任何人都无法解决您的代码问题。
  • 我很确定您的问题是由于.txt*...

标签: java linux unix gpgpu gnupg


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-07-06
    • 2012-07-20
    • 1970-01-01
    • 2012-04-19
    • 2012-08-27
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多