【问题标题】:JAVA_HOME is not defined correctly (only from jenkins)JAVA_HOME 未正确定义(仅来自 jenkins)
【发布时间】:2013-04-16 07:49:35
【问题描述】:

尝试设置 jenkins,但我的构建失败:

$ ant test
Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Build step 'Invoke Ant' marked build as failure

如果我在机器上手动运行“ant test”,它就可以正常工作,并且 JAVA_HOME 设置为完全相同的值。知道詹金斯尝试运行它时为什么会失败吗?是否涉及更多环境变量(虽然我看不到)?

【问题讨论】:

  • 您确定为运行 Jenkins 的用户设置了 JAVA_HOME 吗?
  • @devnull 是的,好像我将“我们无法执行...”消息更新为新值,但仍然失败。
  • 也许你需要 JDK,而不是 JRE?
  • @user1516873 也试过了,但同样的问题。
  • Jenkins, specifying JAVA_HOME 的可能重复项

标签: java ant jenkins


【解决方案1】:

对于其他人,我必须将 PATH /usr/bin/ 添加到 Jenkins 中的 PATH 变量中。 (使用which java 查找您的正确路径)。

詹金斯 > Manage Jenkins > Configure System

添加Environment Variable >>

e.g:

姓名:PATH
值:/usr/local/bin/:/usr/bin/

截图

【讨论】:

    【解决方案2】:

    问题是这样的,我忘记在项目配置中选中“限制该项目可以运行的位置”框。因此,测试尝试在“master”上执行,其中 JAVA_HOME 与我打算运行它的构建执行器上的预期不同。因此,我测试的地方和实际运行的地方是不同的机器。

    【讨论】:

      【解决方案3】:

      在 Jenkins 2.107.1 的 Jenkins 系统配置中设置 JAVA_HOME

      打开你的詹金斯,例如http://192.168.1.12:9090,然后将/configure添加到网址中, 即http://192.168.1.12:9090/configure,然后你可以找到如下:

      【讨论】:

      • 如果提供有关这些步骤的更多信息,将不胜感激。
      【解决方案4】:

      对我来说,上面的选项没有帮助,通过创建一个指向所要求内容的链接来解决:

      sudo ln -s ${actual_java_location} /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
      

      actual_java_location 可以这样读取:

       readlink -f $(which java)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2018-02-14
        • 2015-02-03
        相关资源
        最近更新 更多