一千萬個為什麽

搜索

org.jenkinsci.lib.envinject.EnvInjectException:java.io.IOException:遠程文件操作失敗



在運行使用Windows從站的作業時,Jenkins控制臺中出現以下錯誤:

Started by user 
  [EnvInject] - Loading node environment variables.
 ERROR: SEVERE ERROR occurs
 org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: remote file operation failed: C:\Program Files\Java\jre1.8.0_91 at [email protected]:Management VPC Slave: Windows (sir-rvhi7z8q): java.io.IOException: Unable to delete 'C:\Program Files\Java\jre1.8.0_91\bin\awt.dll'. Tried 3 times (of a maximum of 3) waiting 0.1 sec between attempts.
 at org.jenkinsci.plugins.envinject.util.RunHelper.getBuildVariables(RunHelper.java:137)
 at org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironmentWithoutJobPropertyObject(EnvInjectListener.java:236)
 at org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironment(EnvInjectListener.java:50)
 at hudson.model.AbstractBuild$AbstractBuildExecution.createLauncher(AbstractBuild.java:534)
 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:454)
 at hudson.model.Run.execute(Run.java:1737)
...
 Caused by: java.io.IOException: remote file operation failed: C:\Program Files\Java\jre1.8.0_91 at [email protected]:Management VPC Slave: Windows (sir-rvhi7z8q): java.io.IOException: Unable to delete 'C:\Program Files\Java\jre1.8.0_91\bin\awt.dll'. Tried 3 times (of a maximum of 3) waiting 0.1 sec between attempts.
 at hudson.FilePath.act(FilePath.java:994)
 at hudson.FilePath.act(FilePath.java:976)
...
 Caused by: java.io.IOException: Unable to delete 'C:\Program Files\Java\jre1.8.0_91\bin\awt.dll'. Tried 3 times (of a maximum of 3) waiting 0.1 sec between attempts.
 at hudson.Util.deleteFile(Util.java:250)
 at hudson.FilePath.deleteRecursive(FilePath.java:1211)
...
Caused by: java.nio.file.AccessDeniedException: C:\Program Files\Java\jre1.8.0_91\bin\awt.dll
 at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)

這在一開始就停止了這項工作。

我不知道為什麽EnvInject插件會刪除一些Java文件(比如 awt.dll )。

任何想法如何解決這個問題?

轉載註明原文: org.jenkinsci.lib.envinject.EnvInjectException:java.io.IOException:遠程文件操作失敗

一共有 1 個回答:

EnvInject插件基本上試圖加載使用Jenkins中的JDK工具配置的構建環境,該環境在Windows從站上重新安裝Java JDK庫期間失敗(按照給定配置)。

該JDK配置可以在全局工具配置(位於/configureTools )中找到,以便在該作業配置中選擇給定的JDK配置文件。由於在後臺運行Java進程(例如 java -jar slave.jar )而使用這些 DLL ,安裝過程無法重新安裝 Java JDK em>文件 所以這聽起來像是不可能重新安裝用於運行Jenkins從屬進程的相同的Java JDK文件。

該解決方案是在全局工具配置中禁用自動安裝選項,因為Java JDK已經安裝在該從站上。

Jenkins, Java JDK, Install automatically option

相關: JENKINS-46989 - EnvInjectException:遠程文件操作失敗