我正在这里阅读Facebook开发者的开发指南

它说,我必须使用keytool导出签名为我的应用程序,如:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

我不知道如何找到关键工具,以运行它。我试图打开Windows命令提示符并粘贴上述命令,但它不起作用。


keytool是JDK的一部分。

尝试将%{JAVA_HOME}\前置到exec语句或c:\{jdk}的路径\bin。


JDK自带keytool。如果您正在使用cygwin,那么这可能已经在您的路径上了。否则,您可能会在JDK的bin文件夹中查找。

为了使shell管道(|)正常工作,您可能需要使用cygwin。


keytool是jdk的一部分,它应该是$JAVA_HOME/bin/keytool


keytool位于JDK的bin目录下($JAVA_HOME/bin)。JAVA_HOME是JDK安装目录。 要使用该命令行,还应该在PATH环境变量中包含$JAVA_HOME/bin。


Keytool是Java SDK的一部分。你应该能够在你的Java SDK目录中找到它,例如C:\Program Files\Java\ jdk1.6.0_14\bin


KeyTool是JDK的一部分。假设您使用默认设置安装了JDK,您将在$JAVA_HOME/bin中找到它


我自己找到了一个解决方案,如下所示。它工作得很好。

"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias
> sociallisting -keystore "D:\keystore\SocialListing"  |
> "C:\cygwin\bin\openssl.exe" sha1 -binary | "C:\cygwin\bin\openssl.exe"
> base64

Android:在Android中执行keytool命令的位置

如果在classpath变量中设置了JRE,则可以在dos命令提示符下运行Keytool命令。

例如,如果您想获取android SDK调试证书的MD5指纹,

只需运行以下命令…

C:\Documents and Settings\user\.android>  keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

C:\Documents and Settings\user\.Android >是包含调试的路径。必须经过认证的密钥存储库。

详情请访问http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint


获取android密钥哈希码遵循以下步骤(适用于facebook应用)

在此下载windows版的openssl 现在解压缩到c盘 打开CMD提示符 输入cd C:\Program Files\Java\ jdk1.6.0_26\bin 然后只输入keytool -export -alias myAlias -keystore C:\Users\<您的用户名>\。android\myKeyStore | C:\openssl-0.9.8 k_win32 \bin\openssl sha1 -二进制| C:\openssl-0.9.8 k_win32 \bin\openssl enc -a -e 完成

要获得证书指纹(MD5)代码,请遵循以下步骤

去- C:\Program Files\Java\ jdk1.6.0_26\bin 在bin文件夹中运行jarsigner.exe文件 打开CMD提示符 输入cd C:\Program Files\Java\ jdk1.6.0_26\bin 然后再次键入cmd keytool -list -keystore "C:/Documents and Settings/<您的用户名>/.android/debug.keystore" 它现在会要求输入密钥库密码。默认为“android”类型并输入 完成了。


只需在Windows命令提示符中输入这些。

cd C:\Program Files\Java\jdk1.7.0_09\bin

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName\.android\debug.keystore" -list -v

基本密码为android

您将看到MD5、SHA1和SHA256密钥;选择一个你需要的。


这取决于您的Eclipse版本(我使用的是Kepler)。 去Windows>首选项>Android>构建。

您将找到调试密钥库的位置路径以及SHA1指纹(您可以复制并使用它)


Few observations while I was getting the same problem (Windows). 1. Shell pipe is important. 2. If you are using OpenSSL or Cygwin, definitely you have to install it. 3. keytool comes with JDK so either you have to point to it in the command or you have cd to the JDK/bin folder (where the exe resides) 4. The debug keystore is typically located at ~/.android/debug.keystore 5. password is "android" whether you -keypass it or type it when prompted. 6. For the alias name, you can open (DO NOT SAVE, just open and close) the keystore file with any editor and read it. 7. MOST IMPORTANT - There is a difference is specifying the keystore path within quotes and without. I got it working by using the keystore path within the double quotes. As remix090378 said and as per the instruction, this command indeed worked - cd C:\Program Files\Java\jdk1.7.0_09\bin

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName.android\debug. keystore "密钥存储库" -list -v


KEYTOOL在JAVAC SDK中,所以你必须在包含jns JAVAC的目录中找到它


在cmd窗口(需要以管理员身份运行),

cd %JAVA_HOME% 

只有在设置了系统环境变量JAVA_HOME后才有效。要为路径设置系统变量,可以这样做

setx %JAVA_HOME% C:\Java\jdk1.8.0_121\

然后你就可以打字了

cd c:\Java\jdk1.8.0_121\bin

or

cd %JAVA_HOME%\bin

然后,执行JAVA jdk提供的任何命令,例如

keytool -genkey -v -keystore myapp.keystore -alias myapp

你只需要按回车键后回答问题(相当于在cmd行上输入值)!密钥将被生成


Robby Pond的回答可以概括为使用JAVA_HOME环境变量,并补偿路径中可能出现的任何空白(如Program Files):

"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

如果你安装了带有Xamarin/移动开发支持的visual studio,你将在这里安装java C:\Program Files\Android\jdk\ microsoft_dist_openjdk_{version}\bin\,就像我的情况一样。


在我的例子中,我已经使用ionic cordova build android——prod命令生成了一个APK文件,我需要为已经存在的APK文件获取SHA-1指纹。下面是我如何通过在App目录中运行以下命令来获得它:

Keytool -list -printcert -jarfile app-debug.apk

所以,我基本上在以下应用程序位置运行上述命令:

C:\myApp\platforms\android\app\build\outputs\apk\debug>keytool -list -printcert -jarfile app-debug.apk

这给了我SHA1指纹为:7B:6B:AD:…

希望这能帮助到一些人!


假设您已经在系统中安装了Java,最好是JDK(因为您在问题中提到了它,所以适用于Windows),您应该在安装的bin文件夹中有keytool实用程序。

如果是这种情况,接下来要做的就是将该bin文件夹添加到Windows安装的PATH环境变量中。

下次你将打开一个Windows shell,你将键入keytool,你将能够运行实际的实用程序。


我在另一个帖子上发现了这个,它没有得到很多赞,但它对我非常有帮助。把它加在这里。

Android Studio会自带一个按键工具。

C:\Program Files\Android\Android Studio\jre\bin

你可以在下面看到Richar Heap的帖子,其中有一个有用的参考。我以前确实见过,但忘了。https://stackoverflow.com/a/51524526/4446406


你也可以这样做:

将bat文件复制到PATH环境变量中已经存在的任何文件夹中 然后只需在任何Windows shell中使用keytool命令

keytool的实际位置在bat文件中定义。如果位置错误,bat文件将扫描您的系统,以检测ProgramFiles(子)文件夹中的潜在位置。

还可以找到keytool2.bat,这是"keytool -v -list -keystore"的便捷快捷方式,广泛用于快速检查jks文件的内容。

keytool.bat:


:: 
:: 
:: "keytool alias" script by Céphas
:: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables)
:: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path
::
:: also see keytool2.bat that automatically adds the following parameters in the keytool command line : -v -list -keystore, for quick display of jks content
:: 
:: 
@echo off
set THIS_SCRIPT=%~f0
rem  setlocal enableDelayedExpansion : necessary for paths containing special chars
setlocal enableDelayedExpansion

rem  set PATH to keytool.exe ; path must include the final \
rem  ^ is escape char for paths containing & \ < > ^ | 
set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\
set PROG_NAME=keytool.exe

rem full_path, with "", to work with paths containing special chars
set FULL_KT_PATH="!PATH_TO!!PROG_NAME!"

rem checks if keytool.exe exists
(dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no

if %KT_FOUND%==yes (
    rem keytool found => launching it with all supplied parameters
    rem 
    rem
    %FULL_KT_PATH% %*
    rem
    rem
) else (
    rem keytool not found, trying to find it in %ProgramFiles%

    echo.
    echo Keytool not found in expected location, scan in progess ...
    echo.

    cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul

    cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul

    echo.
    echo *********
    echo Path to program keytool.exe not properly defined, or keytool/java missing on this system
    echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly
    echo *********
    echo.
    pause
    
)    

keytool2.bat:


:: 
:: 
:: "keytool2 alias" script by Céphas
:: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables)
:: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path
::
:: keytool2 automatically adds the following parameters in the keytool command line : -v -list -keystore
:: thus, to quickly display the full content of a jks file, usage is simply : keytool2 \path\to\your\keystore.jks [-alias your_alias]
:: 
:: 
@echo off
set THIS_SCRIPT=%~f0
rem  setlocal enableDelayedExpansion : necessary for paths containing special chars
setlocal enableDelayedExpansion

rem  set PATH to keytool.exe ; path must include the final \
rem  ^ is escape char for paths containing & \ < > ^ | 
set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\
set PROG_NAME=keytool.exe


rem full_path, with "", to work with paths containing special chars
set FULL_KT_PATH="!PATH_TO!!PROG_NAME!"

rem checks if keytool.exe exists
(dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no

if %KT_FOUND%==yes (
    rem keytool found => launching it with all supplied parameters
    rem 
    rem
    %FULL_KT_PATH% -v -list -keystore %*
    rem
    rem
) else (
    rem keytool not found, trying to find it in %ProgramFiles%

    echo.
    echo Keytool not found in expected location, scan in progess ...
    echo.

    cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul

    cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul

    echo.
    echo *********
    echo Path to program keytool.exe not properly defined, or keytool/java missing on this system
    echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly
    echo *********
    echo.
    pause
    
)    


除了加雷思的

上面的答案,下面的对我有用

只需在Windows命令提示符中输入这些。

确保终端以管理员身份运行

cd C:\Program Files\Android\Android Studio\jre\bin keytool -list -v -keystore "C:\Users\admin.android\debug。Keystore " -alias androiddebugkey -storepass android -keypass android

阅读更多

N:B:这应该在第一次构建后完成,因为密钥只在第一次构建后生成


在Windows上

如果你使用Jetbrain的工具箱来管理Android Studio更新,路径是这样的

C:\Users\{USERNAME}\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\202.7486908\jre\bin 

更新后,我必须手动更新/设置此路径为JAVA_HOME (jre文件夹)


考虑添加PATH作为环境变量,并通过cmd访问它。

PATH作为值,C:\Program Files\Java\ jre1.8.0_331\bin作为变量,并通过keytool访问它…


#进入cacerts或jsk所在路径,打开并在cmd下运行以下命令

Keytool -v -list -keystore cacerts

Keytool -v -list -keystore .jks