执行keytool命令获取SHA-1指纹时提示“Unable to locate a Java Runtime”的问题求助
执行keytool命令获取SHA-1指纹时提示“Unable to locate a Java Runtime”的问题求助
兄弟,我之前也碰到过一模一样的情况——明明之前能正常用keytool,突然就提示找不到Java运行时了,大概率是Java的环境变量配置出了问题,或者系统找不到JDK的位置了,给你几个靠谱的解决思路:
先绕开环境变量,直接用绝对路径运行keytool
你先找到自己JDK的安装目录,比如Mac上一般在/Library/Java/JavaVirtualMachines/下面,Windows则通常在C:\Program Files\Java\里。找到对应JDK版本的bin文件夹,里面就有keytool程序,直接用绝对路径执行命令就行。比如Mac上的命令大概是:/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/bin/keytool -keystore path-to-debug-or-production-keystore -list -vWindows上类似:
C:\Program Files\Java\jdk1.8.0_301\bin\keytool.exe -keystore path-to-debug-or-production-keystore -list -v把上面的JDK路径换成你自己的实际路径就行,这样不用依赖环境变量就能直接运行。
修复Java环境变量配置
如果不想每次都敲长路径,那就把Java的路径加到系统环境变量里:- Mac/Linux:打开终端,编辑你的shell配置文件(比如
~/.zshrc或者~/.bash_profile),添加两行配置:
保存后执行export JAVA_HOME=/Library/Java/JavaVirtualMachines/你的JDK版本.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATHsource ~/.zshrc(对应你的shell文件),重启终端后再试keytool命令应该就正常了。 - Windows:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量里新建
JAVA_HOME,值填你的JDK安装根目录(比如C:\Program Files\Java\jdk1.8.0_301),然后编辑Path变量,添加%JAVA_HOME%\bin,重启命令提示符后再测试。
- Mac/Linux:打开终端,编辑你的shell配置文件(比如
给Flutter用户的快捷方式
其实你完全不用自己敲keytool命令,打开Android Studio,找到右侧边栏的「Gradle」图标,展开你的项目→android→app→Tasks→android,双击signingReport,Gradle会自动帮你运行,然后在底部的Run窗口里就能看到所有的SHA-1、SHA-256指纹了,连Java环境的问题都不用管,超级省心。
内容来源于stack exchange
相关产品推荐
相关产品推荐

