0

我正在尝试运行程序trezorctl,通过创建一个运行命令的进程,在Trezor设备旁边签署一个用Java构建的Qtum事务。运行后,您通常需要在确认交易之前输入您的 PIN。ProcessBuildertrezorctl sign-tx <name_of_file>.json

BufferedWriter(OutputStreamWriter(proc.getOutputStream()))通过调用write(pin), then newLine(), then将 PIN 输入到进程中flush()。通过 Intellij 运行程序时,这适用于 Linux 和 Mac,但是当我构建 jar 文件并运行它时,它不会。trezorctl没有收到输入,我的程序在下一个挂起stdInput.next()。在 Windows 上,这种行为也会在 Intellij 上发生。

为什么它会在一种情况下工作而不是另一种情况,即使在同一个操作系统中?当我在 Windows 上手动运行命令行应用程序时,它适用于 cmd,但不适用于 Git bash,表现出类似的行为。我不知道这是否重要,但trezorctl屏蔽了输入,因此您看不到 PIN,这会影响吗?我也试过用 运行我的程序sudo,所以我认为这不是权限问题。

4

0 回答 0