ОШИБКА: 'keytool' не распознается как внутренняя или внешняя команда, работающая программа или командный файл

145

Когда я использую команду

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

Я получаю такую ​​ошибку:

'keytool' не распознается как внутренняя или внешняя команда, действующая программа или командный файл.

Я не могу получить отпечаток сертификата (MD5) на моем компьютере.

Я убедился, что файл хранилища ключей находится в нужном месте.

Любая помощь?

Шалини
источник

Ответы:

227

Убедитесь, что каталог, в котором находится исполняемый файл 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
Шалини
Если вы это сделаете, он будет искать хранилище ключей, 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» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
Шалини
16
Попробуй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
Бен Уильямс
1
хорошо, я вошел в этот 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
96

Это сработало для меня !! :

Перейдите по этому пути или там, где у вас есть файл 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
71

Нашел.

ПЕРЕЙТИ К:

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
Amt87
источник
11
  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

MANOJ G
источник
Спасибо, в Windows 10 я попробовал первое решение и по каким-то причинам не сработало. Второй отлично работает.
NineCattoRules
Спасибо. Второй вариант работал у меня на Windows 10 x64
mdhz
10

Итак, если у вас есть следующая структура:

 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 .. у него нет файла jre. Как я могу решить эту проблему?
raman raman
Перейдите в C:\Softwares\jdk1.8.0_261\jre\binпапку.
Дилип Мегвал,
9

В Windows 8 перейдите в папку C: \ Program Files \ Java \ jre7 \ bin и в адресной строке введите «cmd» без кавычек. Это запустит терминал. Затем введите строку, как описано здесь .

Нейтрино
источник
5

Убедитесь, что JAVA_HOME установлен, а путь в переменных среды отражает каталог bin JAVA_HOME. По сути, PATH должен иметь возможность найти файл keytools.exe в вашем местоположении jdk.

Шаран Раджендран
источник
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 из любого места терминала

пример: C:> keytool

вам нужно добавить системные переменные

для Windows:

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

2) add to Path
%JAVA_HOME%\bin;
Пробойник
источник
4

Легко, просто найдите место, где находится исполняемый файл java/jre(Version)/binkeytool , обычно это, например, на моем компьютере C:\Program Files\Java\jre7\bin. все, что вам нужно сделать, это перейти к переменным среды , щелкнуть PATH, чтобы сделать его активным, затем щелкнуть редактировать, затем добавить полный путь, где находится ваш keytool , для меня я добавлю, что C:\Program Files\Java\jre7\binэто позволит вам выполнять команды keytool, не переходя в каталог, где keytool установлен.

ДжонПеп
источник
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

Б)

  • Добавить C:\Program Files\Java\jre6\bin\в свою PATHпеременную
jjj
источник
2

В моем случае проблема заключалась в использовании PowerShell вместо CMD :)

Скайлин Р
источник
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

Где значение переменной должно быть путем к папке bin вашего JDK.

Затем откройте командную строку и смените каталог на ту же папку bin JDK, подобную этой

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 заработало!

sonictimm
источник
1

Простое решение ошибки заключается в том, что вам сначала нужно изменить каталог папки в командной строке. По умолчанию в командной строке или на вкладке терминала (внутри Android studio внизу) путь установлен на C: \ Users # Имя вашего ПК, которое вы выбрали \ AndroidStudioProjects # app name \ flutter_app> Измените соответственно: - C: \ Users # Имя вашего ПК, которое вы выбрали \ AndroidStudioProjects # app name \ flutter_app> cd \

введите ** cd ** (#after flutter_app>), введите только cd \ без запятых

затем введите cd Program Files \ Java \ jre1.8.0_251 \ bin (# запомните, чтобы правильно проверить имя файла jre)

теперь введите keytool -list -v -keystore "% USERPROFILE% .android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android (без пробела введите команду).

скриншот кодов для запуска

Сураб Бисвас
источник
Я начинающий разработчик флаттера, изо всех сил пытаюсь закончить свое приложение. Я продолжал получать эту ошибку, пока не увидел этот ответ. Спасибо.
Симеон
1

keytool поставляется с Android Studio как часть JRE, необходимой для запуска Android Studio.

В Windows это: C:\Program Files\Android\Android Studio\jre\bin\keytool.exe

На Mac это: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool

Добавьте его в переменные среды, затем снова запустите команду keytool.

Тим Трастон
источник
0

Работы за штраф

Перейти к пути

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

Затем введите пароль Ketsore - и работа сделана !!

user1576593
источник
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 получит

sss
источник
0

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

Прежде всего, каталог для keytool.exe должен находиться по пути

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

Хену
источник
0

Для Windows 10 вам нужно указать путь C:\Program Files\Java\jre1.8.0_161\bin

перезапустить команду и открыть

Md Rashedul Islam
источник
0

Найдите ваш keytool.exe в папке установки Java.

мой 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.

Wesleywai
источник
0

Просто выполните поиск по следующему пути: C: \ → Program Files → Java → jre1.xxx → bin
убедитесь, что эта папка bin содержит этот keytool.exe

Затем откройте командную строку.

затем введите: (cd означает изменение каталога) cd C: \ Program Files \ Java \ jre1.8.0_231 \ bin

Затем введите команду и нажмите ввод

Алекс Соммера
источник
0

Команда keytool может отсутствовать на вашем пути - это часть Java, которая устанавливается как часть Android Studio. Для конкретного пути запустите flutter doctor -v и найдите путь, напечатанный после «Java binary at:». Затем используйте этот полный путь, заменив java (в конце) на keytool. Если ваш путь включает имена, разделенные пробелами, например Program Files, используйте для имен нотацию, соответствующую платформе. Например, в Mac / Linux используйте Program \ Files, а в Windows используйте «Program Files».

Махмуд Хамди
источник
-2
  1. Откройте файл KEYTOOL.EXE в файле JAVA, например, C: \ Program Files \ Java \ bin \ keytool.exe.

  2. УДЕРЖИВАЙТЕ SHIFT и щелкните правой кнопкой мыши папку BIN, в которой находится ваш keytool.exe, и нажмите здесь, чтобы открыть команду CMD или RUN.

  3. Это открывает cmd. затем введите

keytool -exportcert -alias ИМЯ ВАШЕГО ХРАНИЛИЩА -keystore ПУТЬ К KEYSTORE.jks "|" C: \ OpenSSL \ bin \ openssl "sha1 -binary |" C: \ OpenSSL \ bin \ openssl "base64

  1. Пароль Подскажите, введите android и БУОООООМ ... У вас есть Ключ.
СУПАВИВА - Орион ТВ
источник