前言
在idea内执行./gradlew test,发现如下报错:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper
分析
google了一堆,说要用groovy,可是我没有用groovy,以前也是正常启动的。后来无意发现,有人说gradle版本和jdk版本有对应关系。
检查了下我的gradle版本都是4或者5,但是jdk版本是17,很明显不符合版本关系。
通过执行命令,发现我是有jdk8的。
/usr/libexec/java_home -V
Matching Java Virtual Machines (3):
17.0.6 (arm64) “Oracle Corporation” - “Java SE 17.0.6” /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
1.8.191.12 (x86_64) “Oracle Corporation” - “Java” /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_191 (x86_64) “Oracle Corporation” - “Java SE 8” /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
解决方法
在~/.bash_profile里面设置jdk相关变量后,使得默认版本是jdk8即可。
具体步骤:
进入文件: vim ~/.bash_profile
添加变量:
export JAVA_HOME= ( / u s r / l i b e x e c / j a v a h o m e − v 1.8. 0 1 91 ) e x p o r t P A T H = (/usr/libexec/java_home -v 1.8.0_191) export PATH= (/usr/libexec/javahome−v1.8.0191)exportPATH=JAVA_HOME/bin:$PATH
保存退出文件后,执行source ~/.bash_profile。
此时,再执行./gradlew test一切正常。