错误:& # 39;keytool # 39;不能识别为内部或外部命令、可操作程序或批处理文件

当我使用命令时:

C:\>keytool -list -alias androiddebugkey
-keystore .android\debug.keystore
-storepass android -keypass android

我得到这个错误:

'keytool'不能被识别为内部或外部命令、可操作程序或批处理文件。

我无法在计算机上获得证书指纹(MD5)。

我已经确保密钥存储库文件位于适当的位置。

任何帮助吗?

413073 次浏览

检查keytool可执行文件所在的目录是否在%PATH%环境变量上。

例如,在我的Windows 7机器上,它是在 C:\Program Files (x86)\Java\jre6\bin,我的%PATH%变量看起来像C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Java\jre6\bin;C:\WINDOWS\System32\WindowsPowerShell\v1.0\(和许多其他条目)

给:

keytool -list -keystore ~/.android/debug.keystore

在您的行中,密钥库中还有一个空间。请核对一下。

如果你现在有这样的结构:

 C:\Program Files\Java\jre6\bin\
keytool.exe
debug.keystore

然后执行:

C:\Program Files\Java\jre6\bin>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

找到了。

至:

my computer->rightClick->properties->Advanced system settings->environment variables->find path in system variables->dbl click-> paste the "C:\Program Files\Java\jdk1.6.0_16\bin"->OK

至:

cmd -> keytool -list -alias androiddebugkey -keystore "C:\Users\meee\.android\debug.keystore" -storepass android -keypass android

确保设置了JAVA_HOME,环境变量中的路径反映JAVA_HOME的bin目录。 基本上,PATH应该能够找到jdk位置中的keytools.exe文件

这意味着,您的shell无法找到硬盘上的工具。

一)

  • 将工作目录更改为C:\Program Files\Java\jre6\bin\
  • 执行keytool -list -alias androiddebugkey keystore <full directory name make sure that you use enclosing in quotes> -storepass android -keypass android

B)

  • C:\Program Files\Java\jre6\bin\添加到PATH变量中

这对我很管用!!:

转到这个路径或任何你有keytool.exe文件的地方

C:\Program Files\Java\jre7\bin

按住shift,右键单击->,然后按Open command window here

终端将弹出,粘贴这个:

keytool -list -v -keystore "C:\Users\"Your-User-Name(no quotes)"\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

给你MD5和SHA1

精细的作品

进入路径

C:\Program Files\Java\jre7\bin> keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Developer\.android\debug.keystore"

然后输入ketsour密码,工作完成!!

如果你想从终端的任何位置运行keytool

例如:C: > keytool

你需要添加系统变量

Windows:

1) create:
JAVA_HOME
C:\Program Files\Java\jdk1.7.0_45


2) add to Path
%JAVA_HOME%\bin;

您所能做的就是通过命令行导航到计算机中的jre目的地,然后一旦到达bin,键入keytool命令,它就可以工作了。

C:\Program Files (x86)\Java\jre7\bin>
C:\Program Files (x86)\Java\jre7\bin>keytool -list -v -keystore"%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android






Alias name: androiddebugkey
Creation date: 23 Feb, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 479d4fe7
Valid from: Sun Feb 23 06:19:02 IST 2014 until: Tue Feb 16 06:19:02 IST 2044
Certificate fingerprints:
MD5:  DB:6A:8E:48:22:5B:37:73:B1:91:EF:43:3F:26:F0:EC
SHA1: B4:6B:2E:5F:5A:30:C5:E4:E7:12:BB:F0:74:FC:2B:43:64:3A:FC:15
SHA256: CB:59:F3:20:7D:5B:87:99:6C:0D:32:79:79:CF:4E:8C:16:C2:37:81:7B:
B0:AF:D2:EC:3C:11:21:53:58:62:F6
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: FA 96 17 9E 94 73 C3 42   F0 4B 55 5B C7 5B EE BB  .....s.B.KU[.[..
0010: C3 E5 D3 61                                        ...a
]
]

在windows 8中,打开C:\Program Files\Java\jre7\bin,在地址栏中输入不带引号的cmd。这将启动终端。然后输入字符串描述在这里

打开命令提示符 打这. . < / p >

"c:\Program Files(x86)\Java\jdk1.7.0\bin\keytool.exe" -list -v -alias androiddebugkey -keystore "c:\ Users\ isis .android\debug. exeKeystore " -storepass android -keypass android

然后按回车MD5和SHA1键将得到

简单,只需找到keytool可执行文件所在的位置,通常是在java/jre(Version)/bin,例如在我的计算机中是在C:\Program Files\Java\jre7\bin。你所要做的就是转到环境变量单击PATH使其激活,然后单击编辑,然后添加keytool所在的完整路径,对我来说,我会添加C:\Program Files\Java\jre7\bin,这将允许你执行keytool命令,而不需要去安装keytool的目录。

我知道已经有几个答案了,但没有一个对我有用,所以我发布了一个对我有用的答案,可能对别人有帮助。

首先目录上必须有keytool.exe的路径

如果不是目录在路径上,这是给出错误,然后尝试启动命令行作为一个普通用户,而不是作为一个管理员或更改目录到主目录

对于windows 10,你需要路径C:\Program Files\Java\jre1.8.0_161\bin

重新启动命令并打开

打开“环境变量”(你可以在Win10的开始菜单搜索中找到它) 仔细检查JDK所在的路径,以确保它存在。 对我来说,它说“…jdk1.8/bin” 但当我把它复制到Windows资源管理器或命令提示符时,它说它不存在。 我检查了它应该在哪里,它说“jdk1.8.0_77”

一个简单的重命名设置在Android工作室和keytool是工作!

在java安装文件夹中找到你的keytool.exe

< p >我的 C:\Program Files\Java\jre1.8.0_181\bin在任意位置打开cmd并运行

SET PATH=%PATH%;C:\Program Files\Java\jre1.8.0_181\bin;

将路径更改为keytool.exe所在的路径

  1. 进入“我的电脑”->右键单击->系统属性->环境变量->路径-> . 将jdk/bin添加到

    C:\Program Files\Java\jdk1.8.0_211\bin
    

*if this not work then

  1. In cmd set the path by using the below command

    set PATH=C:\Program Files\Java\jdk1.8.0_211\bin
    

now the path is set now you can use the keytool

在我的情况下,问题是在使用PowerShell而不是CMD:)

我遭受了很多试图找到一个解决方案,最后我找到了解决方案,首先通过导航到::设置jre路径到系统变量::

control panel > System and Security > System > Advanced system settings

在“系统变量”下单击新建

Variable name: KEY_PATH
Variable value: C:\Program Files (x86)\Java\jre1.8.0_171\bin

变量值应该是JDK bin文件夹的路径。

然后打开命令提示符并更改目录到相同的JDK的bin文件夹,如下所示

C:\Program Files (x86)\Java\jre1.8.0_171\bin

然后在CMD中复制并粘贴下面的代码

keytool -list -v -keystore "C:\Users\user\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

我的例子是,不管我在哪里调用它,不管我是否路径文件,如果我用powershell打开它,它都不起作用。

但如果我用cmd打开它,它就会工作。

在下面的路径上搜索即可: C:\→程序文件→Java→jre1。XXX→bin
确保这个bin文件夹包含这个keytool.exe

然后打开命令提示符。

then type: (cd表示改变目录) cd C:\Program Files\Java\ jre1.8.0_231\bin

然后输入命令,并按enter

keytool命令可能不在你的路径中——它是Java的一部分,是作为Android Studio的一部分安装的。对于具体路径,运行flutter doctor -v并找到打印在' Java binary at: '之后的路径。然后使用完全限定的路径,用keytool替换java(在最后)。如果路径包含空格分隔的名称,例如Program Files,则使用适合平台的符号表示这些名称。例如,在Mac/Linux上使用程序\文件,在Windows上使用“程序文件”。

一个简单的错误解决方案是,您首先需要在命令提示符中更改文件夹目录。默认在命令提示符或终端(在底部的Android studio内部)选项卡中 路径设置为 C:\Users#您选择的PC的名称\AndroidStudioProjects#应用程序名称\flutter_app> 相应的变化: C:\Users#您选择的PC的名称\AndroidStudioProjects#应用程序名称\flutter_app>cd\

输入**cd**(#在flutter_app>之后),只输入cd\而不是逗号

然后输入cd 程序文件\ Java \ jre1.8.0_251 \ bin(#记住正确检查jre文件名)

现在输入keytool -list -v -keystore "%USERPROFILE%.android\调试。Keystore " -alias androiddebugkey -storepass android -keypass android(没有任何空格输入命令)。

的代码截图运行

  1. 打开你的java文件中的KEYTOOL.EXE 例如:C:\Program Files\Java\bin\ keytool.exe.

  2. .exe. /p> . /li> . /p> . /li> . /p>
  3. 按住SHIFT并右键单击keytool.exe所在的BIN文件夹

  4. 这将打开cmd。然后输入

keytool -exportcert -alias KEYSTORE名称-keystore KEYSTORE路径。C:\OpenSSL\bin\ OpenSSL " base64 . jks" | "C:\OpenSSL\bin\ OpenSSL " sha1 -二进制|

  1. 密码提示,输入android和BOOOOOOOM…你有你的钥匙。

keytool随Android Studio一起发布,作为运行Android Studio所需的JRE的一部分。

在Windows上它的:C:\Program Files\Android\Android Studio\jre\bin\keytool.exe

在Mac上:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool

将其添加到环境变量中,然后再次运行keytool命令。

这是由于keytool.exe的路径没有设置。

在你的windows机器中打开命令提示符,到你想运行keytool cmd的地方,然后设置路径keytool.exe存在

步骤1:打开cmd提示符并运行

cd C:\Program Files\Java\jdk<your jdk version>\jre\lib\security

第二步:在cmd命令下运行,使用

set PATH=C:\Program Files\Java\jdk<your jdk version>\bin

第三步:运行keytool cmd,现在它将能够识别

keytool -list -alias <rest of the arguments>
  1. 进入C:->Program Files->Java->jdk->bin。这里有keytool.exe文件。 2.复制路径到bin。 3.转到:控制面板\系统和安全\系统 4.单击“高级系统设置” 5.单击环境变量 6.在系统变量(下半部分)下:双击变量:路径 B.添加路径:(点击新建然后添加) C:\Program Files\Java\ jdk1.8.0_191 \ bin (你的路径) 8.验证: 打开命令提示符&进入“Keytool" 它应该显示keytool细节&
  2. . mssg没有错误
C:\Program Files\Java\jdk-15.0.1\bin this添加到环境变量中。 参考 website.

打开高级系统设置>开放环境变量——>在系统变量中双击“路径”;——比;C:\Program Files\Java\jdk-15.0.2\bin然后点击新建>点击确定,然后重新启动android studio,这应该解决这个问题

这仅仅意味着keytool关键字没有安装在您的系统中

.访问:访问这里,下载java JDK

然后在环境变量中设置java JDK。

如果你使用颤振并下载了openssl-for-windows:

  • 打开命令提示符
  • 类型flutter doctor -v
  • Android工具链下,你会看到Java binary at: C:\Program Files\Android\jre\bin\java
  • 现在复制代码行并执行cd C:\Program Files\Android\jre\bin
  • 类型keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Username\.android\debug.keystore" | "Location to openssl.exe" sha1 -binary | "Location to openssl.exe" base64

(需要双引号)

  • Enter keystore password: 安卓(默认密码)

这将给你关键的哈希

我正在使用gui工具,必须尝试谁不想使用密钥库命令行

它是创建keystore.jks和导出pem文件和lot的GUI工具

https://keystore-explorer.org/downloads.html