1

在过去的几周里,我一直在我的詹金斯服务器上工作。现在它运行良好的构建并将文件输出到远程位置。但是,我希望在文件上传之前对文件进行一些通过或失败测试。这样我就可以避免发布我工作的损坏版本。同时避免更多我不需要阅读的错误报告。

我要运行的文件实际上是另一个程序的插件。所以我需要实际启动这个程序,因为我可以事先配置所有文件。该程序是一个 .jar 文件,我知道我可以使用一个 shell 脚本启动它。问题是我现在不知道如何在 .jar 程序运行后终止它。我发现的所有解决方案都要求我修改 jar 以自行终止,或终止 JVM。由于各种原因,我都不能到期。

4

2 回答 2

0

这是一个沉重的黑客,但你可以让一个 shell 脚本启动一个后台线程来检查 JVM 是否完成,然后终止它。

bash 中的基本示例:

start_jvm_command >>console.log 2>&1 </dev/null &
while ! grep 'done signal' console.log; do sleep 1; done
pkill -f "regexp for start_jvm_command"

注意:我使用 pkill 终止以避免包装外壳脚本。

于 2013-09-16T09:39:51.720 回答
0

我问这个问题已经一年了,但我找到了一个更好的方法来解决这个问题。它被称为 JUnit,是 Java 的测试库。有了它,我不需要启动整个罐子,但可以一次测试和平。同样,如果需要,我可以编写一个测试来启动整个 .jar 文件。在测试中,我可以检查文件是否存在、功能是否正确完成以及运行时是否抛出任何错误。

于 2014-11-26T19:09:46.903 回答