Java Jenkins Windows slave:此环境中未提供编译器。也许您运行的是JRE而不是JDK
我刚刚安装了一个运行Windows server 2012的新jenkins slave。我已经安装了jdk-8u221-windows-x64并设置了Java_home,路径如下Java Jenkins Windows slave:此环境中未提供编译器。也许您运行的是JRE而不是JDK,java,jenkins,java-8,jenkins-slave,Java,Jenkins,Java 8,Jenkins Slave,我刚刚安装了一个运行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\Oracl
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\u slave\workspace\project01\,然后键入命令:mvn clean install,它运行时不会抱怨从jenkins运行的jdk或jre 根据您的需要,您可以使用以下任何一种方法:
方法1) 请通过以下步骤将Windows节点配置为指向要使用的JDK:
Manage Jenkins
Global Tool Configuration
>JDK>添加JDK
由于您已经安装了Java,请取消选中“自动安装”
在Name
部分,只需提供一些有意义的标识符,而不一定是JAVA\u HOME
。现在,在JAVA\u HOME
文本框中,您可以提供您想要的任何值,因为您将为Windows节点使用不同的值管理Jenkins
管理节点
>(转到Windows节点的配置
部分)>节点属性
现在启用显示刀具位置的复选框
。单击下拉列表中的Add
>,在Global Tool Configuration
部分选择您提供给JDK的名称
现在,您必须为Windows节点提供JAVA_主路径。因此,无论它在哪里,只要在Home
文本框中提及该路径即可,如下所示:方法2) 转到
管理Jenkins
管理节点
>(转到Windows节点的配置
部分)>节点属性
现在启用显示环境变量添加
- 在
名称
文本框中,写入路径
(而不是路径
)
- 在
Value
文本框中,编写JDK安装路径直到bin
,如下所示
在您的情况下,添加以下内容:C:\ProgramFiles\Java\jdk1.8.0\u 221\bin;C:\Windows\System32;C:\maven-3.6.1\bin;%路径%
我并没有在PATH中设置Maven,所以我将其添加到节点的配置中,如上图所示
注意:在Value
文本框中,使用分号(;)作为分隔符,而不是逗号(,)
作业的JDK配置:
作业的命令:
作业的输出:
方法3)
在Windows节点的配置中,启用环境变量
,并在下面添加具有相关值的变量
名称:java.home
值:C:\ProgramFiles\Java\jdk1.8.0\u 221\jre
注意:它是java.home
(都是小写字母,如下所示)
JAVA_HOME
需要指向JDK安装(maven需要tools.jar
),但maven实际上使用JDK中的JRE来运行自己
当使用mvn-version
时,Maven使用Java的内部Java.home
属性。此属性与JAVA\u HOME
环境设置不同,因此可能会欺骗您。它实际上是一个动态属性,显示运行代码的JRE
Ref:路径是否正确C:\Program Files\Java\jdk1.8.0\u 221\\bin
?设置环境变量后是否重新启动了进程?@Naman:是的,路径正确,我可以在该文件中的命令提示符下运行Java和javac命令node@AndiCover:是尝试多次重新启动服务器和jenkins从属服务。所以我想知道,我是否需要在中配置settings.xmlmaven@TienDungTran:在命令提示符下键入where java
会给您带来什么?实际上,我不想在全局工具配置中修复java_HOME,因为我有一些linux从机。第二,如果我同意你的配置。我必须在这个从机上运行的每个作业构建确认中选择JDK,请参见我的图片。我想使用一个(系统)JDK,该JDK将从此节点中的环境变量获取,因此我可以切换到另一个从属节点,而无需更改JDK选项。方法2仍然存在此问题,这是我的屏幕截图,我也尝试重新启动此服务器。请断开连接,然后连接该节点。不幸的是,此问题仍然存在。请使用mvn-v
的输出更新您的帖子。另外,在构建过程中,是否可以打印echo%Path%