我正在here
阅读Facebook开发者的开发指南它说我必须使用keytool导出我的应用程序的签名,例如:
keytool -exportcert -alias androiddebugkey -keystore 〜/ .android / debug.keystore | OpenSSL的 sha1 -binary | openssl base64
我不知道如何找到keytool才能运行它。我试图打开Windows命令提示符并粘贴上面的命令,但它不起作用。
答案 0 :(得分:162)
我自己找到了一个解决方案,如下所示。它工作正常。
“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的\斌\ openssl.exe” BASE64
答案 1 :(得分:103)
只需在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
键;选择你需要的那个。
答案 2 :(得分:78)
要获取Android密钥哈希码,请按照以下步骤操作(适用于Facebook应用)
cd C:\Program Files\Java\jdk1.6.0_26\bin
keytool -export -alias myAlias -keystore C:\Users\<your user name>\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
要获取证书指纹(MD5)代码,请按以下步骤操作
jarsigner.exe
文件cd C:\Program Files\Java\jdk1.6.0_26\bin
keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
android
”类型,然后输入答案 3 :(得分:17)
keytool是JDK的一部分。
尝试将%{JAVA_HOME}\
添加到exec语句或c:\{path to jdk}\bin
。
答案 4 :(得分:12)
KeyTool是JDK的一部分。假设您使用默认设置安装了JDK,您可以在$JAVA_HOME/bin
答案 5 :(得分:6)
我在另一篇文章中发现了这一点,该文章并没有获得多少支持,但是对我来说非常有帮助。因此,将其添加到此处。
Android Studio 将附带一个按键工具。
C:\Program Files\Android\Android Studio\jre\bin
您可以在下面查看Richar Heap的他的文章,并提供有用的参考。我以前看过这个,但是忘了。 https://stackoverflow.com/a/51524526/4446406
答案 6 :(得分:6)
Robby Pond
的答案可以推广到使用JAVA_HOME
环境变量,并且还可以补偿路径中可能出现的任何空白(例如Program Files
):
"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
答案 7 :(得分:4)
keytool是jdk的一部分,它应该是$ JAVA_HOME / bin / keytool
答案 8 :(得分:3)
Keytool是Java SDK的一部分。您应该能够在Java SDK目录中找到它,例如C:\ Program Files \ Java \ jdk1.6.0_14 \ bin
答案 9 :(得分:3)
Android: where to run keytool command in android
如果在类路径变量中设置了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>
是包含必须经过认证的debug.keystore
的路径。
有关详细信息,请访问http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint
答案 10 :(得分:3)
取决于您的Eclipse版本(我使用的是Kepler)。 转到Windows&gt;偏好&GT; Android和GT;建立。
您将找到调试密钥库的位置路径以及SHA1指纹(您可以复制和使用)
答案 11 :(得分:2)
keytool位于JDK bin目录($ JAVA_HOME / bin)中。 JAVA_HOME是您的JDK安装目录。 要使用该命令行,还应该在PATH环境变量中包含$ JAVA_HOME / bin。
答案 12 :(得分:2)
KEYTOOL在JAVAC SDK中。所以你必须在包含 javac
的目录中找到它。答案 13 :(得分:2)
在cmd窗口(需要以管理员身份运行),
cd %JAVA_HOME%
仅在设置了系统环境变量JAVA_HOME时才有效。要为路径设置系统变量,可以执行此操作
setx %JAVA_HOME% C:\Java\jdk1.8.0_121\
然后,您可以输入
cd c:\Java\jdk1.8.0_121\bin
或
cd %JAVA_HOME%\bin
然后,执行JAVA jdk提供的任何命令,例如
keytool -genkey -v -keystore myapp.keystore -alias myapp
您只需在输入后回答问题(相当于在cmd行上键入值)!密钥将生成
答案 14 :(得分:1)
除了Gareth's
上面的答案,下面的对我有用
只需将这些输入到 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
阅读more
N:B:这应该在第一次构建后完成,因为密钥只在第一次构建后生成
答案 15 :(得分:1)
当我遇到同样的问题时,几乎没有观察到(Windows)。 壳管非常重要。 2.如果您使用的是OpenSSL或Cygwin,那么一定要安装它。 3. keytool附带JDK,所以要么你必须在命令中指向它,要么你有cd到JDK / bin文件夹(exe所在的位置) 4.调试密钥库通常位于〜/ .android / debug.keystore 5.密码是“android”,无论你是键入它还是在提示时键入它。 6.对于别名,您可以使用任何编辑器打开(不要保存,只是打开和关闭)密钥库文件并阅读它。 7.最重要 - 不同的是在引号内指定密钥库路径,而不是。我通过使用双引号内的密钥库路径来实现它。 正如remix090378所说的那样,根据instruction,这个命令确实有效 - cd C:\ Program Files \ Java \ jdk1.7.0_09 \ bin
keytool -exportcert -alias androiddebugkey -keystore“C:\ Users \ userName.android \ debug.keystore”-list -v
答案 16 :(得分:1)
keytool
。如果你正在使用cygwin,那么这可能已经在你的道路上了。否则,您可能会在JDK的bin文件夹中挖掘。
你可能需要使用cygwin才能使shell管道(|
)正常工作。
答案 17 :(得分:0)
如果您安装了具有Xamarin /移动开发支持的Visual Studio,那么在C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\
上将安装Java,就像我的情况一样。
答案 18 :(得分:0)
就我而言,我已经使用命令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:...
希望这对某人有帮助!
答案 19 :(得分:0)
鉴于您已在系统中安装了Java,最好是JDK (回答Windows,因为您在问题中提到了它),您在安装的{{1 }}文件夹。
在这种情况下,下一步是将该bin文件夹添加到Windows安装的with cte as (
select promotion_id, number_of_codes n from sourcetable
union all select promotion_id, n - 1 from mytable where n > 1
)
insert into targettable (promotion_id)
select promotion_id from cte
环境变量中。
下次您打开Windows Shell并键入bin
时,您将能够运行实际的实用程序。
答案 20 :(得分:0)
或者,您可以执行以下操作:
PATH
环境变量中已经存在的任何文件夹中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
)