0

jenkinsからshスクリプトを起動する必要があります。簡単ですが、私のスクリプトはJAVA_HOMEのシンボリックリンクを変更します。実際、shスクリプトを使用してJDKバージョンを切り替えます。ジェンキンスなしでジョブを起動すると機能しますが(ジョブはbashで書き込みます)、ジェンキンスでは機能しません...ジェンキンスは起動後にJAVA_HOMEを記憶し、このパスを使用します...ジェンキンスのshスクリプトからJAVA_HOMEを変更するにはどうすればよいですか?可能であれば、スクリプト呼び出しジェンキンスのリロード構成からのものである可能性があります...助けを借りてthx!

4

2 に答える 2

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);  
        }  
    }  

詳細については、Java で実行するシェル スクリプトを参照してください。

于 2012-09-20T05:52:51.887 に答える
0

問題が解決しました!!!魂はシンプルです。ジェンキンスジョブで次のようなshスクリプトを起動しました:./MY_SCRIPT.sh

その後、スクリプトがジェンキンスで起動し、JAVA_HOME の切り替えに問題が発生しました。

sh MY_SCRIPT.sh のような起動スクリプトを実行する必要があり、システムから smt のように起動されます。

于 2012-09-20T18:49:20.593 に答える