Как я могу найти и запустить keytool

186

Я читаю руководство по разработке разработчиков Facebook здесь

В нем говорится, что я должен использовать keytool для экспорта подписи для моего приложения, например:

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

Я не знаю, как найти keytool для его запуска. Я попытался открыть командную строку Windows и вставить указанную выше команду, но она не сработала.

Нгуен Минь Бинь
источник
если вы работаете в системе на основе Linux, /usr/local/java/bin# ./keytoolесли вы работаете в Windowsfind the JDK install path and check bin folder
Elshan
я нашел этот ответ, вы можете использовать его для решения проблемы stackoverflow.com/a/57390582/13405428
ашраф алькаабера

Ответы:

184

Я нашел решение самостоятельно, как цитата ниже. Работает нормально.

"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
Нгуен Минь Бинь
источник
6
Я нашел его здесь: C: \ Program Files \ Java \ jre1.8.0_111 \ bin \ keytool.exe
Хайме Монтойя,
9
Или C: \ Program Files \ Android \ Android Studio \ jre \ bin
SHAHM
Спасибо @SHAHM: отлично подходит для нас, людей, которые не хотят явно загружать Java ОПЯТЬ и каждую неделю получать сообщения об ошибках для обновления до последней версии.
Пит Элвин
116

Просто введите их в командную строку 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ключами; Выберите тот, который вам нужен.

remix090378
источник
3
это сработало для меня. Для ключей отладки используйте ключ -alias androiddebugkey.
Broo
Я использую для версии релиза следующую строку: 1) cd C: \ Program Files \ Java \ jdk1.8.0_162 \ bin и далее 2) keytool -list -v -keystore "C: \ AndroidProjects \ Project1 \ app \ myapp.keystore "
Эндрю Гроу
2
keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified.
Густаф Лильегрен
80

Чтобы получить хэш-код ключа Android, выполните следующие действия (для приложений Facebook)

  1. Скачать OpenSSL для Windows здесь
  2. теперь распакуйте на диск c
  3. открыть командную строку
  4. тип cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. затем только введите 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
  6. Готово

Чтобы получить сертификат отпечатка пальца (MD5), выполните следующие действия.

  1. перейти к - C: \ Program Files \ Java \ jdk1.6.0_26 \ bin
  2. внутри папки bin запустите jarsigner.exeфайл
  3. открыть командную строку
  4. тип cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. затем снова наберите на cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. теперь он запросит пароль Keystore. По умолчанию используется androidтип " " и введите
  7. Готово.
noelyahan
источник
Это работало для меня до последнего шага. После ввода "android" он выплевывает мусор ... я думаю, что он не использует правильную кодировку? Если я ввожу что-то вроде «бла», он говорит, что пароль был неверным. Так что он знает, что у меня правильный пароль, когда я набираю «android»
ArtOfWarfare
Я обнаружил, что проблема была в том, что я не включил флаги -list и -v
ArtOfWarfare
21

Keytool является частью JDK.

Попытайтесь выполнить %{JAVA_HOME}\предварительный оператор или c:\{path to jdk}\bin.

Робби Понд
источник
Я поместил файл cer и файл склада доверенных сертификатов в один и тот же каталог и использовал эту команду:"%JAVA_HOME%\bin\keytool" -import -keystore truststore -file certificate.cer -alias my-alias
Тодд Хейл,
13

KeyTool является частью JDK. Вы найдете его, если вы установили JDK с настройками по умолчанию, в$JAVA_HOME/bin

Крис Кэшвелл
источник
9

Robby PondОтвет может быть обобщен для использования JAVA_HOMEпеременной среды, а также для компенсации любых пробелов, которые могут возникнуть в пути (например Program Files):

"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Алексей
источник
4

keytool является частью jdk, он должен быть $ JAVA_HOME / bin / keytool

James.Xu
источник
4

Keytool является частью Java SDK. Вы должны быть в состоянии найти его в своем каталоге Java SDK, например, C: \ Program Files \ Java \ jdk1.6.0_14 \ bin

2bard
источник
4

В окне 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) после нажатия Enter! Ключ будет сгенерирован

Дженна Лиф
источник
3

keytool находится в каталоге bin JDK ($ JAVA_HOME / bin). JAVA_HOME - ваш установочный каталог JDK. Чтобы использовать эту командную строку, вы также должны включить $ JAVA_HOME / bin в переменную окружения PATH.

Роман Мазур
источник
3

Android: где запустить команду keytool в андроиде

Команду Keytool можно запустить из командной строки DOS, если в переменной classpath установлена ​​JRE.

Например, если вы хотите получить отпечаток MD5 отладочного сертификата SDK для Android,

просто запустите следующую команду ...

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.

Youdhveer
источник
3

В зависимости от вашей версии Eclipse (я использую Kepler). Перейдите в Windows> Настройки> Android> Сборка.

Вы найдете путь к вашему хранилищу ключей отладки, а также отпечаток SHA1 (который вы можете просто скопировать и использовать)

Grasim
источник
3

Я нашел это в другом посте, который не получил много голосов, но это было очень полезно для меня. Так что добавлю это сюда.

Android Studio принесет с собой инструмент для ключей.

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

Вы можете увидеть его пост ниже Ричаром Хипом с полезной ссылкой. Я видел это раньше, но забыл об этом. https://stackoverflow.com/a/51524526/4446406

Gareth
источник
2

KEYTOOL находится в JAVAC SDK. Так что вы должны найти его в каталоге, который содержит javac

суба
источник
2

Если вы установили Visual Studio с поддержкой разработки Xamarin / mobile, у вас будет Java-установка C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\, как и в моем случае.

Ниеминен
источник
1

keytoolпоставляется с JDK. Если вы используете Cygwin, то это, вероятно, уже на вашем пути. В противном случае вы можете покопаться в папке bin вашего JDK.

Вам, вероятно, понадобится в любом случае использовать cygwin для работы shell-каналов ( |).

Мэтью Уиллис
источник
Не могли бы вы сказать мне, как запустить ниже команды? keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64
Нгуен Минь Бин
1
Да, я сделал. и когда я запускаю вышеуказанную команду, CMD говорит: «openssl» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
Нгуен Минь Бин
Вам, вероятно, нужно установить пакет openssl также через установку cygwin.
Мэтью Уиллис,
1
Я уже установил пакет openssl. Проблема по-прежнему возникает :(
Нгуен Минь Бинь
Можете ли вы запустить openssl сам по себе? Какие параметры вы видите, когда вы набираете «открыть» и нажимаете вкладку?
Мэтью Уиллис
1

Несколько замечаний, пока я получал ту же проблему (Windows). 1. Оболочка трубы важна. 2. Если вы используете OpenSSL или Cygwin, вам обязательно нужно его установить. 3. keytool поставляется с JDK, поэтому либо вы должны указать на него в команде, либо перейти в папку JDK / bin (где находится исполняемый файл) 4. Склад ключей отладки обычно находится в ~ / .android / debug.keystore 5. пароль - это «android», независимо от того, используете ли вы пароль или введите его при появлении запроса. 6. Для псевдонима вы можете открыть (НЕ СОХРАНИТЬ, просто откройте и закрыть) файл хранилища ключей в любом редакторе и прочитать его. 7. НАИБОЛЕЕ ВАЖНО. Разница заключается в указании пути хранилища ключей в кавычках и без него. Я получил его с помощью пути хранилища ключей в двойных кавычках. Как сказано в remix090378 и согласно инструкцииэта команда действительно работала - cd C: \ Program Files \ Java \ jdk1.7.0_09 \ bin

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

Зина
источник
0

В моем случае я уже сгенерировал APK-файл, используя команду, ionic cordova build android --prodи мне нужно было получить отпечаток SHA-1 для уже существующего APK-файла. Вот как я получил это, выполнив следующую команду в каталоге приложения:

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:...

Надеюсь, это поможет кому-то!

Devner
источник
0

Учитывая, что вы установили Java и, предпочтительно, JDK в своей системе (отвечая за Windows, потому что вы упомянули об этом в своем вопросе), вы должны иметь утилиту keytool в binпапке вашей установки .

В этом случае вы можете добавить папку bin в PATHпеременную окружения вашей установки Windows.

В следующий раз, когда вы откроете оболочку Windows и наберете текст, keytoolвы сможете запустить саму утилиту.

Христос Алексиу
источник