java.io.IOException: Cannot run program “sh”エラーの対応をメモ

シェルの実行で「ビルド実行」を行い、「コンソール出力」で確認するとエラーとなっている

[workspace] $ sh -xe C:\Windows\TEMP\hudson1301455313927193009.sh
指定されたファイルが見つかりません。
FATAL: コマンドの実行に失敗しました
java.io.IOException: Cannot run program "sh" (in directory "C:\Jenkins\jobs\hello\workspace"): CreateProcess error=2, ?w?????t?@?
	at java.lang.ProcessBuilder.start(Unknown Source)
	at hudson.Proc$LocalProc.<init>(Proc.java:244)
	at hudson.Proc$LocalProc.<init>(Proc.java:216)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:780)
	at hudson.Launcher$ProcStarter.start(Launcher.java:360)
	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97)
	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
	at hudson.model.Build$BuildExecution.build(Build.java:199)
	at hudson.model.Build$BuildExecution.doRun(Build.java:160)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535)
	at hudson.model.Run.execute(Run.java:1732)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:88)
	at hudson.model.Executor.run(Executor.java:234)
Caused by: java.io.IOException: CreateProcess error=2, ?w?????t?@?
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 16 more
Build step 'シェルの実行' marked build as failure
Finished: FAILURE

GitBashを導入している場合にシェル実行exeのパスが通らなくなっている。※これ以外でもあるかも
Git配下のsh.exeをシェルのパスとしてJenkinsに通すことで改善される

解決

Jenkinsブラウザ画面より
Jenkinsの管理 >> システムの設定 >> シェル
シェル実行ファイル

C:\Program Files (x86)\Git\bin\sh.exe

※デフォルトインストール先(Windows7の場合)のため変更してる場合は確認すること

Jenkinsより「ビルド実行」

Finished: SUCCESS

実行シェルの結果の最後で「SUCCESS」になればOK

その他おすすめの備忘録

Tagged with:
 

コメントを残す