Jenkins Windows 代理:此环境中不提供编译器。也许您正在 JRE 而不是 JDK 上运行

问题描述 投票:0回答:1

我刚刚设置了一个运行 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

但是,在此代理中运行的构建作业总是抱怨:

此环境不提供编译器。也许您正在 JRE 而不是 JDK 上运行

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

2019年9月11日更新

我按照Technext建议的方法2配置代理节点

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

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

java jenkins java-8 jenkins-agent
1个回答
2
投票

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


方法1

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

  1. 转到

    Manage Jenkins
    >
    Global Tool Configuration
    > JDK >
    Add JDK

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

    Install automatically

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

  1. 现在转到

    Manage Jenkins
    >
    Manage Nodes
    >(转到 Windows 节点的
    Configure
    部分)>
    Node Properties

    现在启用显示

    Tool Locations
    的复选框。单击
    Add
    > 从下拉列表中,选择您在
    Global Tool Configuration
    部分中提供给 JDK 的名称

    现在您必须提供 Windows 节点的 JAVA_HOME 路径。因此,无论它在哪里,只需在

    Home
    文本框中提及该路径,如下所示:


方法2

转至

Manage Jenkins
>
Manage Nodes
>(转至 Windows 节点的
Configure
部分)>
Node Properties

现在启用显示

Environment variables
>
Add

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

根据您的情况,添加以下内容:

C:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\System32;C:\maven-3.6.1\bin;%PATH%

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

注意:在

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

作业的 JDK 配置:

工作的命令

作业的输出:


方法3

在 Windows 节点的配置中,启用

Environment variables
并使用 relevant 值添加以下变量

姓名:

java.home

价值:

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

:是

java.home
(都是小写字母如下图)

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

使用

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

参考:Maven 中的 Java_home

© www.soinside.com 2019 - 2024. All rights reserved.