FEHLER: 'keytool' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt

137

Wenn ich den Befehl benutze

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

Ich erhalte diesen Fehler:

'keytool' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt.

Ich kann den Zertifikatfingerabdruck (MD5) nicht auf meinem Computer abrufen.

Ich habe sichergestellt, dass die Keystore-Datei am entsprechenden Ort vorhanden ist.

Irgendeine Hilfe?

Shalini
quelle

Antworten:

219

Überprüfen Sie, ob sich das Verzeichnis, in dem sich die ausführbare Keytool-Datei befindet, in Ihrer %PATH%Umgebungsvariablen befindet.

Auf meinem Windows 7-Computer befindet es sich beispielsweise in C:\Program Files (x86)\Java\jre6\binund meine %PATH%Variable sieht aus wie C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Java\jre6\bin;C:\WINDOWS\System32\WindowsPowerShell\v1.0\(und viele andere Einträge)

Ben Williams
quelle
Ich habe dieses C: \ Programme \ Java \ jdk1.6.0_21 \ bin> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android -keypass android eingegeben. Der Fehler, den ich bekam, ist Keytool-Fehler: java.lang.Exception: Keystore-Datei existiert nicht: .android \ debug .keystore
Shalini
Wenn Sie das tun, wird nach dem Schlüsselspeicher gesucht, in C:\Program Files\Java\jdk1.6.0_21\bin\.android\debug.keystoredem mit ziemlicher Sicherheit nicht der richtige Pfad vorhanden ist. Sie müssen ihm den richtigen vollständigen Pfad zu Ihrem Keystore geben.
Ben Williams
1
Die Keystore-Datei befindet sich hier C: \ Dokumente und Einstellungen \ Shalini \ .android> Wenn ich also C: \ Dokumente und Einstellungen \ Shalini \ .android> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass android eingebe -keypass android. Ich erhalte den gleichen Fehler 'Keytool' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batch-Datei erkannt.
Shalini
14
Versuchen SieC:\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, ich habe dieses C: \ Dokumente und Einstellungen \ Shalini \ .android> C: \ Programme \ Java \ jdk1.6.0_21 \ bin \ keytool -list -alias androiddebugkey -keystore C: \ Dokumente und Einstellungen \ Shalini \ .android eingegeben \ debug.keystore -storepass android -keypass android. Der Fehler lautet: Der Dateiname, der Verzeichnisname oder die Syntax der Datenträgerbezeichnung sind falsch.
Shalini
91

Das hat bei mir funktioniert !! ::

Gehen Sie zu diesem Pfad oder wo immer Sie Ihre keytool.exe-Datei haben

C:\Program Files\Java\jre7\bin

Halten shiftSie gedrückt und klicken Sie mit der rechten Maustaste -> und drücken Sie dannOpen command window here

Das Terminal wird angezeigt. Fügen Sie Folgendes ein:

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

gibt Ihnen sowohl MD5 als auch SHA1

Jakob
quelle
Dies funktioniert, aber die Antwort von @ Amt87 stellt sicher, dass Keytool in jedem Verzeichnis verfügbar ist, ohne dass Sie zuerst in das Verzeichnis cd müssen, in dem sich Keytool befindet (nur Windows). Bearbeiten Sie unter OS X (Mac) Ihr .profile und geben Sie am Ende Folgendes an: $ PATH, sonst haben Sie keine Befehle. (siehe architektonisch.com/2012/10/02/… )
Tricknologie
68

Fand es.

GEHE ZU:

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

GEHE ZU:

cmd -> keytool -list -alias androiddebugkey -keystore "C:\Users\meee\.android\debug.keystore" -storepass android -keypass android
Amt87
quelle
10
  1. Gehen Sie zu Arbeitsplatz -> Rechtsklick -> Systemeigenschaften -> Umgebungsvariablen -> Pfad -> fügen Sie diesem Pfad jdk / bin hinzu

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

* Wenn dies nicht funktioniert, dann

  1. Stellen Sie in cmd den Pfad mit dem folgenden Befehl ein

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

Jetzt ist der Pfad festgelegt. Jetzt können Sie das Keytool verwenden

MANOJ G.
quelle
Vielen Dank, in Windows 10 habe ich die erste Lösung ausprobiert und aus bestimmten Gründen nicht funktioniert. Der 2. funktioniert super.
NineCattoRules
Vielen Dank. Die zweite Option funktionierte für mich unter Windows 10 x64
mdhz
9

Gehen Sie unter Windows 8 zu C: \ Programme \ Java \ jre7 \ bin und geben Sie in der Adressleiste "cmd" ohne Anführungszeichen ein. Dadurch wird das Terminal gestartet. Geben Sie dann die Zeichenfolge wie hier beschrieben ein .

Neutrino
quelle
8

Wenn Sie jetzt die folgende Struktur haben:

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

dann ausführen:

C:\Program Files\Java\jre6\bin>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 
Zh. Atanasov
quelle
Ich habe jdk-13 ..es hat keine jre-Datei. Wie kann ich das lösen
raman raman
5

Stellen Sie sicher, dass JAVA_HOME festgelegt ist und der Pfad in den Umgebungsvariablen das bin-Verzeichnis von JAVA_HOME widerspiegelt. Grundsätzlich sollte der PATH in der Lage sein, die Datei keytools.exe an Ihrem JDK-Speicherort zu finden.

Sharan Rajendran
quelle
5

Alles, was Sie tun können, ist, über die Befehlszeile zu Ihrem Ziel in Ihrem Computer zu navigieren. Sobald Sie bin erreicht haben, geben Sie den Befehl keytool ein und es würde funktionieren.

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
quelle
1
Welches davon ist Key Hash und welches ist Development Key Hashes und welches ist Release Key Hashes?
TPWang
4

Einfach, finden Sie einfach den Speicherort, an dem sich die ausführbare Datei von keytool befindet. Normalerweise befindet sie sich java/jre(Version)/binbeispielsweise auf meinem Computer C:\Program Files\Java\jre7\bin. Alles, was Sie tun müssen, ist , zu Umgebungsvariablen zu gehen , auf PATH zu klicken, um es zu aktivieren, dann auf Bearbeiten zu klicken und dann den vollständigen Pfad hinzuzufügen, in dem sich Ihr Keytool befindet . Für mich wird dies hinzugefügt C:\Program Files\Java\jre7\bin, damit Sie Keytool-Befehle ausführen können, ohne in das Verzeichnis zu gehen, in dem Keytool ist installiert.

JohnPep
quelle
3

Wenn Sie Keytool von einem beliebigen Ort des Terminals aus ausführen möchten

Beispiel: C:> Keytool

Sie müssen die Systemvariablen hinzufügen

für Windows:

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

2) add to Path
%JAVA_HOME%\bin;
Probojnik
quelle
2

Dies bedeutet, dass Ihre Shell das Tool auf Ihrer Festplatte nicht finden konnte.

EIN)

  • Ändern Sie das Arbeitsverzeichnis in C:\Program Files\Java\jre6\bin\
  • Ausführen keytool -list -alias androiddebugkey keystore <full directory name make sure that you use enclosing in quotes> -storepass android -keypass android

B)

  • Fügen Sie C:\Program Files\Java\jre6\bin\Ihrer PATHVariablen hinzu
jjj
quelle
2

In meinem Fall bestand das Problem darin, PowerShell anstelle von CMD zu verwenden :)

Skylin R.
quelle
2

Ich habe viel gelitten, als ich versucht habe, eine Lösung dafür zu finden, und schließlich habe ich die Lösung gefunden, indem ich zuerst den jre- Pfad zu den Systemvariablen festgelegt habe, indem ich zu :: navigiert habe

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

Klicken Sie unter Systemvariablen auf Neu

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

Dabei sollte der Variablenwert der Pfad zum bin-Ordner Ihres JDK sein.

Öffnen Sie dann die Eingabeaufforderung und wechseln Sie das Verzeichnis in den gleichen bin-Ordner des JDK

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

Kopieren Sie dann den folgenden Code und fügen Sie ihn in cmd ein

keytool -list -v -keystore "C:\Users\user\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android   
Jude
quelle
1

Geben:

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

Auch in Ihrer Zeile befindet sich ein Leerzeichen im Keystore. Überprüfen Sie bitte das.

Anju
quelle
1

Öffnen Sie "Umgebungsvariablen" (Sie können es über die Startmenüsuche in Win10 aufrufen) und überprüfen Sie den Pfad, in dem sich das JDK befindet, um sicherzustellen, dass es vorhanden ist. Für mich hieß es "... jdk1.8 / bin". Als ich das in den Windows Explorer oder die Eingabeaufforderung kopierte, hieß es, dass es nicht existierte. Ich überprüfte, wo es hätte sein sollen und es stand "jdk1.8.0_77"

Eine einfache Umbenennung der Einstellung in Android Studio und Keytool funktionierte!

sonictimm
quelle
0

Das funktioniert gut

Gehe zum Pfad

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

Dann geben Sie das Ketsore-Passwort ein und fertig!

user1576593
quelle
0

Öffnen Sie die Eingabeaufforderung und geben Sie Folgendes ein.

"c: \ Programme (x86) \ Java \ jdk1.7.0 \ bin \ keytool.exe" -list -v -alias androiddebugkey -keystore "C: \ Users \ EIS.android \ debug.keystore" -storepass android -keypass Android

Drücken Sie dann die Eingabetaste MD5 und die Taste SHA1 wird angezeigt

sss
quelle
0

Ich weiß, dass es bereits mehrere Antworten gibt, aber keine davon hat für mich funktioniert. Daher poste ich eine, die für mich funktioniert hat und möglicherweise für jemanden hilfreich ist.

Zunächst muss sich das Verzeichnis zu keytool.exe im Pfad befinden

und wenn anstelle des Verzeichnisses im Pfad ein Fehler auftritt, versuchen Sie, die Befehlszeile als normaler Benutzer anstatt als Administrator zu starten oder das Verzeichnis in das Ausgangsverzeichnis zu ändern

Dunkler Schatten
quelle
0

Für Windows 10 müssen Sie einen Pfad erstellen C:\Program Files\Java\jre1.8.0_161\bin

Befehl neu starten und öffnen

Md Rashedul Islam
quelle
0

Suchen Sie, wo sich Ihre keytool.exe im Java-Installationsordner befindet

meins ist C:\Program Files\Java\jre1.8.0_181\binüberall cmd geöffnet und läuft

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

Ändern Sie den Pfad in den Pfad, in dem Sie Ihre keytool.exe gefunden haben

Ahmed Adewale
quelle
0

Mein Fall ist, dass es nicht funktioniert, wo immer ich es aufrufe, egal ob ich die Datei pfade oder nicht, wenn ich sie mit Powershell öffne.

aber es funktioniert, wenn ich es mit cmd öffne.

Wesleywai
quelle
0

Suchen Sie einfach auf folgendem Pfad: C: \ → Programme → Java → jre1.xxx → bin
sicher, dass dieser bin-Ordner diese keytool.exe enthält

Öffnen Sie dann die Eingabeaufforderung.

Geben Sie dann Folgendes ein: (cd bedeutet Verzeichniswechsel) cd C: \ Programme \ Java \ jre1.8.0_231 \ bin

Geben Sie dann den Befehl ein und drücken Sie die Eingabetaste

Alex Sommera
quelle
0

Der Befehl keytool befindet sich möglicherweise nicht in Ihrem Pfad. Er ist Teil von Java, das als Teil von Android Studio installiert wird. Führen Sie für den konkreten Pfad Flutter Doctor -v aus und suchen Sie den Pfad, der nach 'Java Binary at:' gedruckt wurde. Verwenden Sie dann diesen vollständig qualifizierten Pfad und ersetzen Sie Java (am Ende) durch Keytool. Wenn Ihr Pfad durch Leerzeichen getrennte Namen enthält, z. B. Programme, verwenden Sie die plattformgerechte Notation für die Namen. Verwenden Sie beispielsweise unter Mac / Linux Program \ Files und unter Windows "Program Files".

Mahmoud Hamdy
quelle
0

Eine einfache Fehlerlösung besteht darin, dass Sie zuerst das Ordnerverzeichnis in der Eingabeaufforderung ändern müssen. Standardmäßig ist der Pfad in der Eingabeaufforderung oder im Terminal (in Android Studio unten) auf C: \ Users # Name Ihres ausgewählten PCs \ AndroidStudioProjects # App-Name \ flutter_app> Ändern Sie entsprechend: - C: \ Users #Name Ihres PCs, den Sie ausgewählt haben \ AndroidStudioProjects # App-Name \ flutter_app> cd \

Geben Sie ** cd ** (#after flutter_app>) ein, geben Sie nur cd \ nicht Kommas ein

Geben Sie dann cd Program Files \ Java \ jre1.8.0_251 \ bin ein (#remember, um den Dateinamen von jre ordnungsgemäß zu überprüfen).

Geben Sie nun keytool -list -v -keystore "% USERPROFILE% .android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android ein (ohne Anyspace geben Sie den Befehl ein).

Screenshot der auszuführenden Codes

Sourabh Biswas
quelle
-2
  1. Öffnen Sie dort, wo sich Ihre KEYTOOL.EXE in Ihrer JAVA-Datei befindet, z. B. C: \ Programme \ Java \ bin \ keytool.exe.

  2. HOLD SHIFT und Rechtsklick auf den BIN-Ordner, in dem sich Ihre keytool.exe befindet, und klicken Sie hier auf CMD- oder RUN-Befehl öffnen.

  3. Dies öffnet cmd. Geben Sie dann ein

keytool -exportcert -alias NAME IHRES KEYSTORE -keystore PATH OF KEYSTORE.jks "|" C: \ OpenSSL \ bin \ openssl "sha1 -binary |" C: \ OpenSSL \ bin \ openssl "base64

  1. Passwort Eingabeaufforderung, geben Sie Android und BOOOOOOOM ein ... Sie haben Ihren Schlüssel.
SUPAVIVA - Der Orion-Fernseher
quelle