Jar 不接受值

Jar not accepting values

我有一个 jar 文件,当来自命令提示符的 运行 运行良好时,我的意思是它要求用户输入,但是当 运行 来自 psexecpowershelljenkins 不接受值并开始处理进一步的命令。 简而言之:jar执行的时候,有一个菜单可以选择。如果选择在特定范围内,则效果很好,否则会给出消息 entered value is not valid。在这里,我循环获取消息。任何人都可以建议我哪里出错或需要对设置进行任何更改。

P.S.~ 我正在尝试在远程机器上执行命令,我正在使用 java -jar myFile.jar

调用 jar

can you give a basic idea how I can achieve it in Jenkins.

所以

  • 如果您的 jar 接受参数,您可以通过参数化构建在 jenkins 作业中传递它们
  • 如果它没有出现而是提示您,那么您就有问题了:那么您需要一种自动化控制台的方法。

自动化控制台

作业的 X 平台工具是 Expect。它的坏处是它需要大量依赖 Windows(如果你是 运行,那么 Linux 期望可能已经存在)。作为替代方案,您可以使用 Autohotkey,尽管它无法轻松检测到控制台文本(与读取控制台缓冲区的预期不同)。但是,如果提示以确定性方式出现(即刚开始后),您可以执行以下操作:

java -jar myfile.jar
sleep 5
autohotkey.exe SendKeys.ahk

SendKeys.ahk 会很简单:

 WinActivate <pid / window name ...>
 Send answer1<ENTER>answer2<ENTER> ....

但它可以变得更健壮,这样密钥发送就不会依赖于控制台 window 状态。

在 cmd 中,您可以使用 title 命令设置一些特定的 window 名称,然后您可以使用 AHK 激活该名称。