[英]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.