如何从jenkins运行sh脚本

时间:2012-09-19 18:53:58

标签: java linux jenkins hudson

我需要从jenkins启动sh脚本,这很简单,但我的脚本更改了JAVA_HOME的符号链接,实际上是使用sh脚本在JDK版本之间切换。当我在没有jenkins的情况下启动工作(在bash上写作)时它起作用,但是它不能在jenkins下工作...... Jenkins在启动后记住JAVA_HOME并使用这条路径...如何在jenkins下的sh脚本中更改JAVA_HOME?可能是来自脚本调用jenkins重新加载配置,如果它可能... thx任何帮助!

2 个答案:

答案 0 :(得分:0)

试试如下;

    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

答案 1 :(得分:0)

问题解决了!!! soulution很简单,我有一个在jenkins工作中启动的sh脚本,如下所示:     ./MY_SCRIPT.sh

在jenkins下启动该脚本后,我在切换JAVA_HOME方面遇到了问题。

所有都需要像这样执行启动脚本:     sh MY_SCRIPT.sh 它将从系统中启动smt。