【问题标题】:Using stdin "<" in java process builder在 Java 进程构建器中使用标准输入“<”
【发布时间】:2015-11-18 13:11:26
【问题描述】:

我正在使用进程生成器来执行一些 Windows 命令,但我无法使用 stdin &lt; 来读取文件。例如,读取 myJOB 配置 xml 以创建一个名为 myJOB 的新作业在命令提示符下工作正常,但在 Eclipse 中使用进程生成器无法正常工作:

java -jar jenkins-cli.jar -s "url" create-job myJOB < myJOB_Config.xml

任何解决方案...

【问题讨论】:

  • &lt; 由 shell 解释。 ProcessBuilder 不会这样做,但我想你可以(不要。redirectInput 更好)构建一个调用执行命令的 shell 的进程。喜欢bash -c "command here"。类似于stackoverflow.com/a/16486906

标签: java runtime


【解决方案1】:

在没有&lt; myJOB_Config.xml 的情况下构建您的命令,然后使用ProcessBuilder.redirectInput(File)

将此流程构建器的标准输入源设置为文件。

【讨论】:

  • 我试过这个......没有成功。 ProcessBuilder 获取 java.lang.ProcessBuilder@29be9e36 作为参数而不是文件,进而引发错误
  • 看不到你的代码,除了你没有正确使用API​​,我无话可说。
  • 这是我的代码:code java -jar jenkins-cli.jar -s "url" create-job myJOB pb1.redirectInput(new File("myJOB_Config.xml")) code
  • 您提供的不是全部代码。该代码将包含(new ProcessBuilder("java", "-jar", "jenkins-cli.jar", "-s", url, "create-job", "myJOB")).redirectInput(File) 之类的内容以及更多用于运行命令和读取输出的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多