当我使用命令时:

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

我得到这个错误:

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

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

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

任何帮助吗?


当前回答

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

其他回答

找到了。

至:

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

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

 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 

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

例如:C: > keytool

你需要添加系统变量

Windows:

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

2) add to Path
%JAVA_HOME%\bin;

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

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

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