BŁĄD: narzędzie „keytool” nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

138

Kiedy używam polecenia

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

Otrzymuję ten błąd:

Narzędzie „keytool” nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.

Nie mogę uzyskać odcisku palca certyfikatu (MD5) na moim komputerze.

Upewniłem się, że plik kluczy znajduje się w odpowiedniej lokalizacji.

Jakaś pomoc?

Shalini
źródło

Odpowiedzi:

220

Sprawdź, czy katalog, w którym znajduje się plik wykonywalny keytool, znajduje się w %PATH%zmiennej środowiskowej.

Na przykład na moim komputerze z systemem Windows 7 znajduje się w C:\Program Files (x86)\Java\jre6\bin, a moja %PATH%zmienna wygląda jak C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Java\jre6\bin;C:\WINDOWS\System32\WindowsPowerShell\v1.0\(i wiele innych wpisów)

Ben Williams
źródło
wszedłem do tego C: \ Program Files \ Java \ jdk1.6.0_21 \ bin> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android -keypass android. błąd, który otrzymałem, to błąd narzędzia keytool: java.lang. wyjątek: plik magazynu kluczy nie istnieje: .android \ debug .keystore
Shalini
Jeśli to zrobisz, będzie szukał magazynu kluczy, do C:\Program Files\Java\jdk1.6.0_21\bin\.android\debug.keystorektórego prawie na pewno nie jest właściwa ścieżka. Musisz podać mu poprawną pełną ścieżkę do swojego magazynu kluczy.
Ben Williams
1
plik kluczy jest tutaj C: \ Documents and Settings \ Shalini \ .android> więc kiedy wchodzę do C: \ Documents and Settings \ Shalini \ .android> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android -keypass android. Otrzymuję ten sam błąd „Keytool” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
Shalini
14
SpróbujC:\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
Ben Williams
ok wprowadziłem 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. błąd to: Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest nieprawidłowa.
Shalini
91

To zadziałało dla mnie !! :

Przejdź do tej ścieżki lub gdziekolwiek masz plik keytool.exe

C:\Program Files\Java\jre7\bin

Przytrzymaj shifti kliknij prawym przyciskiem myszy -> następnie naciśnijOpen command window here

terminal wyskoczy, wklej to w:

keytool -list -v -keystore "C:\Users\"Your-User-Name(no quotes)"\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

daje zarówno MD5, jak i SHA1

Jakob
źródło
To działa, ale odpowiedź @ Amt87 zapewni, że narzędzie keytool będzie dostępne w dowolnym katalogu, bez konieczności wcześniejszego przechodzenia do katalogu, w którym znajduje się keytool (tylko Windows). w OS X (Mac), wyedytuj swój .profile i pamiętaj, aby dołączyć: $ PATH na końcu lub nie będziesz mieć żadnych poleceń. (patrz Architectryan.com/2012/10/02/… )
tricknology
68

Znalazłem to.

IŚĆ DO:

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

IŚĆ DO:

cmd -> keytool -list -alias androiddebugkey -keystore "C:\Users\meee\.android\debug.keystore" -storepass android -keypass android
Amt87
źródło
10
  1. Przejdź do Mój komputer -> kliknij prawym przyciskiem myszy -> właściwości systemu -> zmienne środowiskowe -> Ścieżka -> dodaj jdk / bin do tej ścieżki

    C:\Program Files\Java\jdk1.8.0_211\bin

* jeśli to nie zadziała

  1. W cmd ustaw ścieżkę za pomocą poniższego polecenia

    set PATH=C:\Program Files\Java\jdk1.8.0_211\bin

teraz ścieżka jest ustawiona teraz możesz użyć narzędzia keytool

MANOJ G
źródło
Dzięki, w Windows 10 wypróbowałem pierwsze rozwiązanie iz jakichś powodów nie zadziałało. Drugi działa świetnie.
NineCattoRules
Dzięki. Druga opcja działała dla mnie w systemie Windows 10 x64
mdhz
9

W systemie Windows 8 przejdź do C: \ Program Files \ Java \ jre7 \ bin i na pasku adresu wpisz „cmd” bez cudzysłowów. Spowoduje to uruchomienie terminala. Następnie wpisz ciąg zgodnie z opisem tutaj .

Neutrino
źródło
8

Więc jeśli masz teraz następującą strukturę:

 C:\Program Files\Java\jre6\bin\
                                keytool.exe
                                debug.keystore

następnie wykonaj:

C:\Program Files\Java\jre6\bin>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 
Zh. Atanasov
źródło
Mam jdk-13 ... nie ma pliku jre. Jak mogę to rozwiązać
raman raman
5

Upewnij się, że JAVA_HOME jest ustawiona, a ścieżka w zmiennych środowiskowych odzwierciedla katalog bin JAVA_HOME. Zasadniczo PATH powinien być w stanie znaleźć plik keytools.exe w lokalizacji jdk.

Sharan Rajendran
źródło
5

wszystko, co możesz zrobić, to przejść do miejsca docelowego jre w komputerze za pomocą wiersza poleceń, a następnie po dotarciu do bin, wpisujesz polecenie keytool i to zadziała.

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
]
]
krrish
źródło
1
Który z nich to hash klucza, a który to skróty klucza programistycznego, a który to skróty klucza wydania?
TPWang
4

Łatwo, po prostu znajdź lokalizację, w której znajduje się plik wykonywalny narzędzia keytool, na java/jre(Version)/binprzykład w moim komputerze C:\Program Files\Java\jre7\bin. wszystko, co musisz zrobić, to przejść do zmiennych środowiskowych , kliknąć ŚCIEŻKA, aby ją aktywować, a następnie kliknąć edytuj, a następnie dodać pełną ścieżkę do miejsca, w którym znajduje się narzędzie do kluczy , dla mnie dodam C:\Program Files\Java\jre7\binto, co pozwoli ci wykonywać polecenia keytool bez przechodzenia do katalogu, w którym keytool jest zainstalowane.

JohnPep
źródło
3

jeśli chcesz uruchomić keytool z dowolnej lokalizacji terminala

przykład: C:> keytool

musisz dodać zmienne systemowe

dla Windowsa:

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

2) add to Path
%JAVA_HOME%\bin;
Probojnik
źródło
2

Oznacza to, że powłoka nie mogła znaleźć narzędzia na dysku twardym.

ZA)

  • Zmień katalog roboczy na C:\Program Files\Java\jre6\bin\
  • Wykonać keytool -list -alias androiddebugkey keystore <full directory name make sure that you use enclosing in quotes> -storepass android -keypass android

B)

  • Dodaj C:\Program Files\Java\jre6\bin\do swojej PATHzmiennej
jjj
źródło
2

W moim przypadku problem polegał na używaniu PowerShell zamiast CMD :)

Skylin R
źródło
2

Wiele cierpiałem, próbując znaleźć rozwiązanie tego problemu i ostatecznie znalazłem rozwiązanie, najpierw ustawiając ścieżkę jre do zmiennych systemowych, przechodząc do ::

control panel > System and Security > System > Advanced system settings 

W obszarze Zmienne systemowe kliknij nowe

Variable name: KEY_PATH
Variable value: C:\Program Files (x86)\Java\jre1.8.0_171\bin

Gdzie Wartość zmiennej powinna być ścieżką do folderu bin twojego JDK.

Następnie otwórz wiersz polecenia i zmień katalog na ten sam folder bin JDK, jak ten

C:\Program Files (x86)\Java\jre1.8.0_171\bin 

następnie skopiuj i wklej poniższy kod w cmd

keytool -list -v -keystore "C:\Users\user\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android   
Jude
źródło
1

Dać:

keytool -list -keystore ~/.android/debug.keystore

Również w twojej linii jest miejsce w magazynie kluczy. Proszę sprawdź to.

Anju
źródło
1

Otwórz „Zmienne środowiskowe” (możesz się do nich dostać z wyszukiwania w menu Start w Win10) i dokładnie sprawdź ścieżkę, w której znajduje się jdk, aby upewnić się, że istnieje. Dla mnie było to napisane "... jdk1.8 / bin" Ale kiedy skopiowałem to do Eksploratora Windows lub wiersza poleceń, powiedział, że nie istnieje. Sprawdziłem, gdzie powinien być, i powiedział „jdk1.8.0_77”

Prosta zmiana nazwy ustawienia w Android Studio i narzędziu keytool działała!

sonictimm
źródło
0

Działa za dobrze

Idź do Path

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

Następnie wprowadź hasło Ketsore i zadanie wykonane !!

user1576593
źródło
0

Otwórz wiersz polecenia, wpisz to ..

"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 android

Następnie naciśnij Enter MD5 i klucz SHA1 dostanie

sss
źródło
0

Wiem, że jest już kilka odpowiedzi, ale żadna z nich nie zadziałała dla mnie, więc publikuję taką, która zadziałała dla mnie, może być pomocna dla kogoś.

Przede wszystkim katalog do keytool.exe musi znajdować się na ścieżce

a jeśli zamiast katalogu znajdującego się na ścieżce daje błąd to Spróbuj uruchomić wiersz poleceń jako zwykły użytkownik zamiast jako administrator lub zmień katalog na katalog domowy

Ciemny cień
źródło
0

W przypadku systemu Windows 10 musisz ścieżkę C:\Program Files\Java\jre1.8.0_161\bin

zrestartuj polecenie i otwórz

Md Rashedul Islam
źródło
0

Zlokalizuj miejsce, w którym plik keytool.exe znajduje się w folderze instalacyjnym Java

mój jest C:\Program Files\Java\jre1.8.0_181\binotwarty w dowolnym miejscu cmd i działa

SET PATH=%PATH%;C:\Program Files\Java\jre1.8.0_181\bin;

zmień ścieżkę na ścieżkę, w której znalazłeś plik keytool.exe

Ahmed Adewale
źródło
0

Mój przypadek jest taki, że nie działa wszędzie tam, gdzie to nazywam, bez względu na to, czy ścieżkę do pliku, czy nie, jeśli otworzę go za pomocą PowerShell.

ale działa, jeśli otworzę go za pomocą cmd.

Wesleywai
źródło
0

Po prostu wyszukaj w następującej ścieżce: C: \ → Program Files → Java → jre1.xxx → bin
upewnij się, że ten folder bin zawiera ten plik keytool.exe

Następnie otwórz wiersz polecenia.

następnie wpisz: (cd oznacza zmień katalog) cd C: \ Program Files \ Java \ jre1.8.0_231 \ bin

Następnie wpisz polecenie i naciśnij klawisz Enter

Alex Sommera
źródło
0

Polecenie keytool może nie znajdować się na twojej ścieżce - jest częścią Javy, która jest instalowana jako część Android Studio. Aby uzyskać konkretną ścieżkę, uruchom flutter doctor -v i znajdź ścieżkę wydrukowaną po 'Java binary at:'. Następnie użyj tej w pełni kwalifikowanej ścieżki, zastępując java (na końcu) keytool. Jeśli ścieżka zawiera nazwy oddzielone spacjami, takie jak Program Files, użyj dla nich notacji odpowiedniej dla platformy. Na przykład w systemie Mac / Linux użyj opcji Program \ Files, a w systemie Windows - „Program Files”.

Mahmoud Hamdy
źródło
0

Prostym rozwiązaniem błędu jest to, że najpierw musisz zmienić katalog folderu w wierszu polecenia. Domyślnie w wierszu poleceń lub na karcie terminala (w studiu Android na dole) ścieżka jest ustawiona na C: \ Users # Nazwa twojego komputera, który wybrałeś \ AndroidStudioProjects # nazwa aplikacji \ flutter_app> Zmień odpowiednio: - C: \ Users # Nazwa wybranego komputera \ AndroidStudioProjects # nazwa aplikacji \ flutter_app> cd \

wpisz ** cd ** (#after flutter_app>), wpisz tylko cd \ nie przecinki

następnie wpisz cd Program Files \ Java \ jre1.8.0_251 \ bin (# pamiętaj, aby poprawnie sprawdzić nazwę pliku jre)

teraz wpisz keytool -list -v -keystore "% USERPROFILE% .android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android (bez spacji wpisz polecenie).

zrzut ekranu kodów do uruchomienia

Sourabh Biswas
źródło
-2
  1. Otwórz plik KEYTOOL.EXE w pliku JAVA, na przykład C: \ Program Files \ Java \ bin \ keytool.exe.

  2. PRZYTRZYMAJ SHIFT i kliknij prawym przyciskiem myszy folder BIN, w którym znajduje się plik keytool.exe, a następnie kliknij tutaj polecenie otwórz CMD lub RUN.

  3. Otworzy się cmd. następnie wpisz

keytool -exportcert -alias NAZWA TWOJEGO SKLEPU KLUCZÓW -keystore ŚCIEŻKA SKLEPU KLUCZY.jks "|" C: \ OpenSSL \ bin \ openssl "sha1 -binary |" C: \ OpenSSL \ bin \ openssl "base64

  1. Pytanie o hasło, wprowadź android i BOOOOOOOM ... Masz swój klucz.
SUPAVIVA - Telewizor Orion
źródło