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


137

当我使用命令

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

我收到此错误:

无法将“ keytool”识别为内部或外部命令,可操作程序或批处理文件。

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

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

有什么帮助吗?

Answers:


219

检查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\(以及许多其他条目)


我输入了这个C:\ Program Files \ Java \ jdk1.6.0_21 \ bin> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android -keypass android。我得到的错误是keytool错误:java.lang.Exception:密钥库文件不存在:.android \ debug .keystore
Shalini

如果这样做,它将寻找C:\Program Files\Java\jdk1.6.0_21\bin\.android\debug.keystore几乎肯定不是正确路径的密钥库。您需要给它正确的密钥库完整路径。
本·威廉姆斯

1
密钥库文件在这里C:\ Documents and Settings \ Shalini \ .android>,所以当我输入C:\ Documents and Settings \ Shalini \ .android> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android -keypass android。我收到相同的错误“ keytool”,无法识别为内部或外部命令,可操作程序或批处理文件。
Shalini

14
试试C:\Program Files\Java\jdk1.6.0_21\bin\keytool -list -alias androiddebugkey -keystore C:\Documents and Settings\Shalini\.android\debug.keystore -storepass android -keypass android
Ben Williams

好的,我输入了此C:\ Documents and Settings \ Shalini \ .android> C:\ Program Files \ Java \ jdk1.6.0_21 \ bin \ keytool -list -alias androiddebugkey -keystore C:\ Documents and Settings \ Shalini \ .android \ debug.keystore -storepass android -keypass android。错误是文件名,目录名称或卷标签语法不正确。
Shalini

91

这对我有用!:

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


这可行,但是@ Amt87的答案将确保您在任何目录中都可以使用keytool,而无需首先CD到keytool所在的目录(仅Windows)。在OS X(Mac)中,编辑.profile并确保最后包含:$ PATH,否则您将没有任何命令。(见architectryan.com/2012/10/02/...
tricknology

68

找到了。

去:

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

10
  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

现在设置了路径现在可以使用keytool


谢谢,在Windows 10中,我尝试了第一个解决方案,但由于某些原因无法正常工作。第二个作品很棒。
NineCattoRules

谢谢。为我工作在Windows 10 64第二个选项
mdhz

9

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


8

因此,如果您现在具有以下结构:

 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 

我有jdk-13 ..it没有jre文件。我该如何解决
拉曼拉曼


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
]
]

1
其中哪一个是密钥哈希,哪个是开发密钥哈希,哪个是发行密钥哈希?
TPWang

4

容易,只需找到keytool可执行文件所在的位置,java/jre(Version)/bin例如通常在我的计算机中C:\Program Files\Java\jre7\bin。所有您需要做的就是进入环境变量单击PATH使其处于活动状态,然后单击Edit,然后在keytool所在的位置添加完整路径,对我来说,我将添加它,C:\Program Files\Java\jre7\bin这将使您无需进入目录即可执行keytool命令。已安装keytool。


3

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

例如:C:> keytool

您需要添加系统变量

对于Windows:

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

2) add to Path
%JAVA_HOME%\bin;

2

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

一个)

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


2

我经历了很多尝试找到解决方案的尝试,最后我找到了解决方案,方法是首先通过导航到:将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

其中Variable value应该是您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   

1

给:

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

在您的行中,密钥库中也有一个空格。请检查一下。


1

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

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


0

罚款的作品

前往路径

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

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


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安卓

然后点击Enter MD5,SHA1键将得到


0

我知道已经有好几个答案,但是没有一个对我有用,因此我发布的一个对我有用的答案可能对某人有用。

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

并且如果不是目录位于路径上,而是出现错误,则尝试以普通用户而不是管理员身份启动命令行,或将目录更改为主目录



0

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

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

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

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


0

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

但是,如果我使用cmd打开它,它将起作用。


0

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

然后打开命令提示符。

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

然后键入命令,然后按Enter


0

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


0

一个简单的错误解决方案是,您首先需要在命令提示符下更改文件夹目录。默认情况下,在命令提示符或终端(在底部的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(#remember正确检查jre的文件名)

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

要运行的代码的屏幕截图


-2
  1. 打开JAVA文件(例如C:\ Program Files \ Java \ bin \ keytool.exe)中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 ...您拥有密钥。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.