簡體   English   中英

Jenkins Windows slave:此環境不提供編譯器。 也許您在 JRE 上運行而不是在 JDK 上運行

[英]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 日更新

我將slave節點配置為Technext建議的方法2 在此處輸入圖片說明

在作業構建配置中,我在 JDK 選項中選擇了 (System)。 如果我選擇 JDK 8 update 221,則此構建作業成功運行,但我想使用將從該節點中的環境變量獲取的(系統)JDK,因此我可以切換到另一個從節點而無需更改 JDK 選項。 在此處輸入圖片說明

但是,當我遠程訪問此服務器並打開命令提示符時,移至該項目的工作區文件夾,例如:C:\\jenkins_slave\\workspace\\project01\\,然后鍵入命令:mvn clean install,它運行時沒有抱怨從 Jenkins 運行的 jdk 或 jre。

您可以根據適合您的方式使用以下任何一種方法:


方法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並使用相關值添加以下變量

名稱: 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM