【问题标题】:How to run sh script from jenkins如何从詹金斯运行 sh 脚本
【发布时间】:2012-09-12 03:17:09
【问题描述】:
我需要从 jenkins 启动 sh 脚本,这很简单,但是我的脚本更改了 JAVA_HOME 的符号链接,实际上我使用 sh 脚本在 JDK 版本之间切换。当我在没有 jenkins 的情况下启动工作时它可以工作(在 bash 上编写的工作),但它不能在 jenkins 下工作......詹金斯在启动后记得 JAVA_HOME 并使用这个路径......我如何从 jenkins 下的 sh 脚本更改 JAVA_HOME ?如果可能的话,可能来自脚本调用 jenkins 重新加载配置......谢谢任何帮助!
【问题讨论】:
标签:
java
linux
jenkins
hudson
【解决方案1】:
试试下面的方法;
public static void execShellCmd(String cmd) {
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd });
int exitValue = process.waitFor();
System.out.println("exit value: " + exitValue);
BufferedReader buf = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = buf.readLine()) != null) {
System.out.println("exec response: " + line);
}
} catch (Exception e) {
System.out.println(e);
}
}
更多详情:Shell Script Running with java
【解决方案2】:
问题解决了!!!解决方案很简单,我有在 jenkins 工作中启动的 sh 脚本,如下所示:
./MY_SCRIPT.sh
在 jenkins 下启动该脚本后,我在切换 JAVA_HOME 时遇到了问题。
所有需要做这样的启动脚本:
sh MY_SCRIPT.sh
它会像从系统一样启动 smt。