【问题标题】:How to Send a Password to Process in Java如何在 Java 中向进程发送密码
【发布时间】:2011-09-01 00:06:33
【问题描述】:

我正在从 java 启动一个进程来为我运行命令。此过程会运行一段时间,然后需要密码才能继续。现在我知道我可以写入进程的输入流,但我不太确定如何检测何时需要写入。

可能的解决方案:
有没有办法可以检测到进程正在阻塞?
我可以在执行命令后立即写入标准,当进程到达需要它的点时,它可以从中读取吗?

还有其他想法吗?

【问题讨论】:

  • 这是你的代码(你有源代码),还是别人的 jar?我的倾向是说命令行程序不应该提示输入密码,但如果你没有编写代码,你可能别无选择。
  • 如果这是您的代码,那么您为什么不尝试将密码存储在文件中,并让进程在需要时从那里读取它。显然它不安全等,但也许你需要它就足够了。
  • @bwawok 我正在尝试在 Windows 上执行 runas 命令。它运行了一会儿,然后提示用户输入密码。我不确定如何获得密码

标签: java io iostream inputstream


【解决方案1】:

不需要检测子进程是否阻塞。如果子进程被设计为阻塞直到通过标准输入向它提供输入,它会阻塞直到提供这样的输入。

有必要记住标准输入、输出和错误缓冲区的大小是有限的,因此子进程必须处理输入缓冲区的内容,而父进程必须处理尽快输出和错误缓冲区的内容。不这样做会导致子进程挂起。

【讨论】:

    【解决方案2】:

    也许您应该解决 runas 问题,但不要使用 runas。谷歌找到了我这个:http://www.source-code.biz/snippets/c/1.htm 让你在运行时传递你的密码....

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 2018-09-10
      • 2011-01-24
      • 1970-01-01
      • 2019-01-12
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多