gpt4 book ai didi

java - Jenkins Windows Slave : No compiler is provided in this environment. 也许您正在 JRE 而不是 JDK 上运行

转载 作者:行者123 更新时间:2023-11-30 05:29:59 26 4
gpt4 key购买 nike

我刚刚设置了一个运行 Windows Server 2012 的新 jenkins 从机。我已经安装了 jdk-8u221-windows-x64 并设置了 Java_home,路径如下

C:\Users\Administrator>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_221\

C:\Users\Administrator>echo %PATH%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\
Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\
Program Files\Amazon\cfn-bootstrap\;C:\Program Files\Git\cmd;C:\Program Files\Ja
va\jdk1.8.0_221\\bin;C:\maven\bin;C:\maven\bin

但是,在此从站中运行的构建作业总是提示:

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK

知道是什么原因造成的吗?

2019 年 9 月 11 日更新

我按照Technext建议的方法2配置从节点 enter image description here

在作业构建配置中,我在 JDK 选项中选择了(系统)。如果我选择 JDK 8 update 221,则此构建作业会成功运行,但我想使用将从该节点中的环境变量获取的(系统)JDK,因此我可以切换到另一个从属节点,而无需更改 JDK 选项。 enter image description here

但是,当我远程到该服务器并打开命令提示符时,转到该项目的工作区文件夹,比方说:C:\jenkins_slave\workspace\project01\,然后键入命令:mvn clean install,它运行没有提示 Jenkins 运行的 jdk 或 jre。

最佳答案

您可以根据适合您的方式使用以下任何方法:

<小时/>

方法1)

请按照以下步骤配置您的 Windows 节点,使其指向您要使用的 JDK:

  1. 转到管理 Jenkins > 全局工具配置 > JDK > 添加 JDK

    由于您已经安装了 Java,因此取消选中自动安装

    Name部分,只需提供一些有意义的标识符,不一定是JAVA_HOME。现在,在 JAVA_HOME 文本框中,您可以提供您想要的任何值,因为无论如何您都会为 Windows 节点使用不同的值。

enter image description here

  • 现在转到管理 Jenkins > 管理节点 >(转到 Windows 节点的配置部分)> 节点属性

    现在启用工具位置复选框。单击添加 > 从下拉列表中,选择您在全局工具配置部分中为 JDK 提供的名称

    现在您必须提供 Windows 节点的 JAVA_HOME 路径。因此,无论它在哪里,只需在 Home 文本框中提及该路径,如下所示:

  • enter image description here

    <小时/>

    方法2)

    转到管理 Jenkins > 管理节点 >(转到 Windows 节点的配置部分)> 节点属性

    现在启用环境变量 > 添加

    复选框
    • Name文本框中,写入Path(而不是PATH)
    • Value文本框中,写入您的JDK安装路径,直到bin,如下所示。

    enter image description here

    根据您的情况,添加以下内容:C:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\System32;C:\maven-3.6.1\bin;%PATH%

    我没有在 PATH 中设置 Maven,因此我将其添加到 Node 的配置中,如上所示。

    注意:在Value文本框中,使用分号(;)作为分隔符,而不是逗号(,)

    作业的 JDK 配置:

    enter image description here

    作业的命令:

    enter image description here

    作业的输出:

    enter image description here

    <小时/>

    方法3)

    在 Windows 节点的配置中,启用环境变量并添加以下变量以及相关

    名称:java.home

    值:C:\Program Files\Java\jdk1.8.0_221\jre

    注意:它是java.home(全部都是小写字母,如下所示)

    enter image description here

    JAVA_HOME 需要指向 JDK 安装(maven 需要 tools.jar),但 Maven 实际上 使用 JDK 中的 JRE 来自行运行。

    当使用mvn -version时,Maven使用Java的内部java.home属性。此属性与 JAVA_HOME 环境设置不同,因此它可能会欺骗您。它实际上是一个动态属性,显示哪个 JRE 正在运行您的代码。

    引用号:Java_home in Maven

    关于java - Jenkins Windows Slave : No compiler is provided in this environment. 也许您正在 JRE 而不是 JDK 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57787000/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com