[英]No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? - but jdk selected
[英]Jenkins Windows slave: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
我刚刚设置了一个运行 Windows Server 2012 的新 jenkins slave。我已经安装了 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 日更新
在作业构建配置中,我在 JDK 选项中选择了 (System)。 如果我选择 JDK 8 update 221,则此构建作业成功运行,但我想使用将从该节点中的环境变量获取的(系统)JDK,因此我可以切换到另一个从节点而无需更改 JDK 选项。
但是,当我远程访问此服务器并打开命令提示符时,移至该项目的工作区文件夹,例如:C:\\jenkins_slave\\workspace\\project01\\,然后键入命令:mvn clean install,它运行时没有抱怨从 Jenkins 运行的 jdk 或 jre。
您可以根据适合您的方式使用以下任何一种方法:
方法1 )
请按照以下步骤配置您的 Windows 节点以将其指向您要使用的 JDK:
转到Manage Jenkins
> Global Tool Configuration
> JDK > Add JDK
由于您已经安装了 Java,请取消选中Install automatically
安装框
在Name
部分,只提供一些有意义的标识符,不一定是JAVA_HOME
。 现在在JAVA_HOME
文本框中,您可以提供您希望的任何值,因为无论如何您都将为您的 Windows 节点使用不同的值。
现在转到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
并使用相关值添加以下变量
名称: 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 正在运行您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.