MacのJenkinsおじさんを起動するjdkを変更する

Macに入れたjenkinsがビルド成功してるのに、こけてしまう。

** BUILD SUCCEEDED **

FATAL: Could not initialize class hudson.util.ProcessTree$UnixReflection
java.lang.NoClassDefFoundError: Could not initialize class hudson.util.ProcessTree$UnixReflection
    at hudson.util.ProcessTree$UnixProcess.kill(ProcessTree.java:552)
    at hudson.util.ProcessTree$UnixProcess.killRecursively(ProcessTree.java:572)
    at hudson.util.ProcessTree$Unix.killAll(ProcessTree.java:496)
    at hudson.Launcher$LocalLauncher.kill(Launcher.java:796)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:546)
    at hudson.model.Run.execute(Run.java:1689)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)

ググっても、答えが出ないけど、java8入れたからだろうと思い、jenkinsをjava7で起動するようにしようと思った。

まず、MacJavaはどこにあるか

OSXでJavaのバージョンを切り替える - リジェクトされました

これを見ると、java_homeコマンドを使うとよさそうということが分かりました。感謝。

$ /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.7"
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

JAVA_HOMEの設定

このJavaでもって、Jenkinsおじさんを起動したい。

MacのJenkinsおじさんは、LaunchDaemonで動いてるようなので、起動ファイルを編集。

sudo vim /Library/LaunchDaemons/org.jenkins-ci.plist

JAVA_HOMEを追加する。

        <key>EnvironmentVariables</key>
        <dict>
                <key>JENKINS_HOME</key>
                <string>/Users/Shared/Jenkins/Home</string>
                <key>JAVA_HOME</key>
                <string>/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home</string>
        </dict>

Jenkinsおじさんの再起動

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

これで、Jdk1.7でおじさんが動き出しました。