jenkins上的sonarscanner:在java\u主页或路径中找不到“java”可执行文件

uqzxnwby  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(833)

我尝试在jenkins上运行.net core sonarscanner工具(在linux上运行),例如: dotnet sonarscanner begin ... 但这是一个错误 Could not find 'java' executable in JAVA_HOME or PATH. 我不确定这是为什么,因为我在管道顶部明确设置了路径:

environment {
    JAVA_HOME="${tool 'openjdk-11'}/jdk-11"
    PATH="${tool 'openjdk-11'}/jdk-11/bin:$HOME/.dotnet/tools/:$PATH" 
}

通过运行以下命令,我可以看出这看起来是正确的: sh "echo \"Java Home:\" $JAVA_HOME" 生产: Java Home: /var/lib/jenkins/tools/hudson.model.JDK/openjdk-11 并列出目录: sh "ls /var/lib/jenkins/tools/hudson.model.JDK/openjdk-11/jdk-11/bin" 生产:

+ ls /var/lib/jenkins/tools/hudson.model.JDK/openjdk-11/jdk-11/bin
jaotc
jar
jarsigner
java
javac
javadoc
javap
jcmd
jconsole
jdb
jdeprscan
jdeps
jhsdb
jimage
jinfo
jjs
jlink
jmap
jmod
jps
jrunscript
jshell
jstack
jstat
jstatd
keytool
pack200
rmic
rmid
rmiregistry
serialver
unpack200

然而,声纳扫描器还是出现了故障: Could not find 'java' executable in JAVA_HOME or PATH. 更新:
关于dimitry的评论-我正在使用以下工具:

在管道顶部:

tools{
      jdk 'openjdk-11'
  }

关于马西内克的答案-好地方。我已经意识到,将javau home设置在管道的顶端实际上并没有起到任何作用。不管我把它设置成什么,它都是: /var/lib/jenkins/tools/hudson.model.JDK/openjdk-11

polkgigr

polkgigr1#

变量 $JAVA_HOME 应该指向java的主目录,在那里可以通过追加 bin 你的 $JAVA_HOME 变量指向

Java Home: /var/lib/jenkins/tools/hudson.model.JDK/openjdk-11

要找到java可执行文件,必须附加 jdk-11/bin 因此,到javau home的正确路径应该是:

/var/lib/jenkins/tools/hudson.model.JDK/openjdk-11/jdk-11

路径应该指向:

/var/lib/jenkins/tools/hudson.model.JDK/openjdk-11/jdk-11/bin
ar7v8xwq

ar7v8xwq2#

您可以使用“工具”部分在管道中使用java。

pipeline {
    agent any
    tools {
        jdk 'your-jdk-tool-name' 
    }

相关问题