Kotlin could not find the require JDK tools in the Java installtion '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home' used by Gradle. Make sure is running on a JDK, not JRE.
最近在Android开发中使用gradle打包时遇到了上面的问题,排查很久,总算找到了原因:没有配置JAVA_HOME环境变量
首先先安装好jdk。
获取JAVA的安装路径:/usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.261.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_261 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
mac下编辑profile:
vim ~/.bash_profile,如果找不到bash_profile文件,执行 touch .bash_profile
注意:HomeBrew不是必须的。
编辑完成后,按esc
退出插入模式,然后shift + :
输入wq!
退出编辑模式。
执行下面命令使之生效
source ~/.bash_profile
验证下:
输入 echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
注意:
在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效。需要重新执行 : $source ~/.bash_profile
mac终端类型有两种,zsh和bash,其中,bash初始化默认.bash_profile,zsh初始化默认.zshrc
zsh: command not found: adb
mac的Catalina系统默认zsh终端,所以.bash_profile并不会初始化。
解决办法
1. 修改~/.zshrc文件
vim ~/.zshrc
在~/.zshrc文件最后,增加一行:
source ~/.bash_profile
2. 还可以执行命令切换一下:chsh -s /bin/bash
延伸:
一、Mac系统下的环境变量
a. /etc/profile
b. /etc/paths
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc
说明:
1、其中a和b是系统级别的,系统启动就会加载,其余是用户接别的。
2、c,d,e按照从前往后的顺序读取,如果c文件存在,则后面的几个文件就会被忽略不读了,以此类推。
3、~/.bashrc没有上述规则,它是bash shell打开的时候载入的。4、建议在c中添加环境变量,以下也是以在c中添加环境变量来演示的。二、添加环境变量
1、输入以下代码后按enter,就可以打开bash_profile文件
2、添加环境变量
1、点击i进入编辑状态
2、首先创建一个“export + 自定义名字(例如图中的JAVA_HOME)”
3、然后使用export PATH= $PATH : $+自定义名字(JAVA_HOME)。(在一个PATH下添加多个环境变量后面用:号把路径拼接下来,)这样一个环境变量就添加上了。
4、然后按esc退出编辑状态,使用:wq退出。(有时会因为权限问题提示:E45: ‘readonly’ option is set (add ! to override)错误,这时使用:wq!强制保存退出就ok)
5、注意:先定义路径(MAVEN_HOME),后用path引入(PATH),是从上到下的顺序,要不然就读不出。
另外一点就是在bash_profile图中我最后添加了${PATH}:这里通过它引用了一些系统基础的命令,如我们刚刚使用vim,切记一定要加上否则连系统基础命令都会报command not found
3、补充Mac终端命令
如果是vi,则:Esc 退出编辑模式,输入以下命令:
:wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)
:w 保存但不退出(常用)
:w! 若文件属性为『只读』时,强制写入该档案
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:e! 将档案还原到最原始的状态!