AWS Codedeploy失败,出现JAVA_HOME错误

时间:2015-12-08 17:19:43

标签: java maven amazon-web-services aws-code-deploy

安装了java 8和

  

Java -version

产量

Baymax = new Robot();
Baymax.send('message "I am Baymax, your personal health care companion"', function (err, result) {
  console.log('command successfully sent.')
});

在钩子下有一个AfterInstall脚本,只有

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

AWS codedeploy失败并出现以下错误

cd $HOME/workspace
mvn clean install

echo $ JAVA_HOME给出

  

/usr/java/jdk1.8.0_45/jre

还尝试将JAVA_HOME设置为

  

/usr/java/jdk1.8.0_45

当我在工作区中直接尝试mvn clean install时,它能够正确地拾取Java。知道代码部署出了什么问题吗?

{\"message\":\"Script at specified location: scripts/start failed with exit code 1\",\"log\":\"LifecycleEvent - AfterInstall\\nScript - scripts/start\\n[stderr]Error: JAVA_HOME is not defined correctly.\\n[stderr]  We cannot execute /usr/lib/jvm/jre/bin/java\\n\"}"}

1 个答案:

答案 0 :(得分:1)

  • Codedeploy似乎运行正常,它只运行您提供的任何脚本。
  • 这可能是当前正在运行的用户无法访问JAVA_HOME的问题。
  • 如果未在appSpec中指定runas参数,则默认情况下脚本将以root权限运行(因为主机代理以root权限启动)。
  • 如果是这种情况,可能的解决方法是让root用户可以访问JAVA_HOME,或者在appSpec中为AfterInstall脚本指定runas。