错误:'keytool'不被识别为内部或外部命令,可操作程序或批处理文件

时间:2011-06-02 07:57:12

标签: android keytool

当我使用命令

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

我收到此错误:

  

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

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

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

任何帮助?

29 个答案:

答案 0 :(得分:190)

检查keytool可执行文件所在的目录是否在您的路径中。 (例如,在我的Windows 7机器上,它位于C:\ Program Files(x86)\ Java \ jre6 \ bin。)

答案 1 :(得分:78)

这对我有用!! :

转到此路径或您拥有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

答案 2 :(得分:55)

找到它。

转到:

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

答案 3 :(得分:9)

在Windows 8上,转到C:\ Program Files \ Java \ jre7 \ bin,在地址栏中输入不带引号的“cmd”。这将启动终端。然后输入字符串作为描述here

答案 4 :(得分:7)

所以如果你现在有以下结构:

 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 

答案 5 :(得分:5)

您所能做的就是通过命令行导航到计算机中的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
]
]

答案 6 :(得分:4)

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

答案 7 :(得分:3)

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

示例:C:> keytool

您需要添加系统变量

for Windows:

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

2) add to Path
%JAVA_HOME%\bin;

答案 8 :(得分:3)

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

答案 9 :(得分:2)

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

A)

  • 将工作目录更改为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变量

答案 10 :(得分:1)

我在尝试寻找解决方案时遇到了很多麻烦,最后我找到了解决方案,方法是先通过导航到以下位置来设置系统变量的 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   

答案 11 :(得分:1)

一个简单的错误解决方案是,您首先需要在命令提示符下更改文件夹目录。默认情况下,在命令提示符或终端(位于底部的Android Studio内部)标签中 路径设置为 C:\ Users#您选择的PC的名称\ AndroidStudioProjects#app名称\ flutter_app> 进行相应更改:- C:\ Users#您选择的PC的名称\ AndroidStudioProjects#app名称\ flutter_app> cd \

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

然后键入cd Program Files \ Java \ jre1.8.0_251 \ bin (#记住要正确检查jre的文件名)

现在键入 keytool -list -v -keystore“%USERPROFILE%.android \ debug.keystore” -alias androiddebugkey -storepass android -keypass android (不带任何空格的命令)。

screenshot of the codes to run

答案 12 :(得分:1)

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

对Android Studio和keytool中的设置进行简单的重命名就可以了!

答案 13 :(得分:1)

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命令。

答案 14 :(得分:1)

  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 详细信息并且没有错误消息。

答案 15 :(得分:1)

提供:

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

同样在你的行中,密钥库中有一个空格。请检查一下。

答案 16 :(得分:0)

这是由于 keytool.exe 所在的路径未设置。

在windows机器中打开命令提示符,遍历你想运行keytool cmd的位置并设置keytool.exe所在的路径

步骤 1:打开 cmd promt 并运行 "cd C:\Program Files\Java\jdk1.8.0_131\jre\lib\security"

第 2 步:在 cmd 下运行以使用 "设置 PATH=C:\Program Files\Java\jdk1.8.0_131\bin"

第三步:运行keytool cmd,现在就可以识别了。

答案 17 :(得分:0)

keytool命令可能不在您的路径中-它是Java的一部分,而Java是作为Android Studio的一部分安装的。对于具体路径,请运行flutter doctor -v并找到在“ Java二进制文件位于:”之后打印的路径。然后使用该标准路径将Java(最后)替换为keytool。如果您的路径包含以空格分隔的名称(例如“程序文件”),请使用平台专用的名称表示法。例如,在Mac / Linux上,使用Program \ Files,在Windows上,使用“ Program Files”。

答案 18 :(得分:0)

只需在以下路径上搜索: C:\→程序文件→Java→jre1.xxx→bin
确保此bin文件夹包含此keytool.exe

然后打开命令提示符。

然后键入:(cd表示更改目录) cd C:\ Program Files \ Java \ jre1.8.0_231 \ bin

然后键入命令,然后按Enter键

答案 19 :(得分:0)

C:\Program Files\Java\jdk-15.0.1\bin 添加到环境变量中。 请参阅 this 网站。

答案 20 :(得分:0)

我的情况是,如果我使用powershell打开文件,则无论我在何处都不管文件是否路径,该文件都不起作用。

但是如果我使用cmd打开它,它就可以工作。

答案 21 :(得分:0)

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

答案 22 :(得分:0)

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

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

*如果这不起作用

  1. 在cmd中使用以下命令设置路径

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

现在已设置路径,现在您可以使用键盘工具

答案 23 :(得分:0)

找到您的keytool.exe在Java安装文件夹中的位置

我的是 C:\Program Files\Java\jre1.8.0_181\bin在任何地方打开cmd并运行

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

将路径更改为您找到keytool.exe的路径

答案 24 :(得分:0)

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

重启命令并打开

答案 25 :(得分:0)

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

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

如果不是路径中的目录而是给出错误,那么尝试以普通用户而不是管理员或将目录更改为主目录来启动命令行

答案 26 :(得分:0)

打开命令提示符 输入这个..

“c:\ Program Files(x86)\ Java \ jdk1.7.0 \ bin \ keytool.exe”-list -v -alias androiddebugkey -keystore“C:\ Users \ EIS.android \ debug.keystore”-storepass android -keypass android

然后按Enter键输入MD5和SHA1键

答案 27 :(得分:0)

作品正常

转到路径

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

然后输入Ketsore密码并完成工作!!

答案 28 :(得分:-2)

  1. 打开您的JAVA文件中的KEYTOOL.EXE,例如 例如C:\ Program Files \ Java \ bin \ keytool.exe。

  2. 按住SHIFT并右键单击keytool.exe所在的BIN文件夹 并从此处单击打开CMD或RUN命令。

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

keytool -exportcert -alias密钥库的名称-keystore KEYSTORE.jks的路径” |“ C:\ OpenSSL \ bin \ openssl” sha1 -binary |“ C:\ OpenSSL \ bin \ openssl” base64

  1. 密码提示,输入android和BOOOOOOOM ...您拥有密钥。