Come posso trovare ed eseguire il keytool


186

Sto leggendo una guida allo sviluppo degli sviluppatori di Facebook qui

Dice che devo usare keytool per esportare la firma per la mia app come:

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

Non so come trovare il keytool per eseguirlo. Ho provato ad aprire un prompt dei comandi di Windows e incollare il comando sopra, ma non ha funzionato.


se stai /usr/local/java/bin# ./keytoolfind the JDK install path and check bin folder
usando un

ho trovato questo ansour si può utilizzare per risolvere il prob stackoverflow.com/a/57390582/13405428
Ashraf alqaabera

Risposte:


184

Ho trovato una soluzione da solo come riportato di seguito. Funziona bene

"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
L'ho trovato qui: C: \ Programmi \ Java \ jre1.8.0_111 \ bin \ keytool.exe
Jaime Montoya

9
Oppure C: \ Programmi \ Android \ Android Studio \ jre \ bin
SHAHM,

Grazie @SHAHM: ottimo per noi gente che non vuole scaricare esplicitamente Java AGAIN ed essere disturbato ogni settimana per eseguire l'aggiornamento all'ultima versione.
Pete Alvin,

116

Basta inserirli nel prompt dei comandi di Windows.

cd C:\Program Files\Java\jdk1.7.0_09\bin

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

La password di base è android

Verrà presentato con il MD5, SHA1e SHA256le chiavi; Scegli quello che ti serve.


3
questo ha funzionato per me. Per le chiavi di debug usa -alias androiddebugkey.
Broo,

Uso per la prossima versione della versione di rilascio: 1) cd C: \ Programmi \ Java \ jdk1.8.0_162 \ bin e successivi 2) keytool -list -v -keystore "C: \ AndroidProjects \ Project1 \ app \ myapp.keystore "
Andrew Grow,

2
keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified.
Gustaf Liljegren,

80

Per ottenere il codice hash chiave Android segui questi passaggi (per le app di Facebook)

  1. Scarica openssl per Windows qui
  2. ora decomprimere su c drive
  3. apri il prompt di cmd
  4. genere cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. quindi digitare solo 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. Fatto

Per ottenere il codice dell'impronta digitale del certificato (MD5) attenersi alla seguente procedura

  1. vai a - C: \ Programmi \ Java \ jdk1.6.0_26 \ bin
  2. all'interno della cartella bin eseguire il jarsigner.exefile
  3. apri il prompt di cmd
  4. genere cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. quindi digitare nuovamente cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. chiederà la password del keystore ora. L'impostazione predefinita è " android" digitare e inserire
  7. Fatto.

Questo ha funzionato per me fino al passaggio finale. Dopo aver digitato "android" sputa spazzatura ... suppongo che non stia usando la codifica corretta? Se entro in qualcosa come "blah", mi dice che la password non è corretta. Quindi sa che ho la password corretta quando
scrivo

Ho scoperto che il problema era che avevo lasciato fuori la
lista-

21

keytool fa parte del JDK.

Prova a anteporre %{JAVA_HOME}\all'istruzione exec o c:\{path to jdk}\bin.


Ho messo il file cer e il file truststore nella stessa directory e ho usato questo comando:"%JAVA_HOME%\bin\keytool" -import -keystore truststore -file certificate.cer -alias my-alias
Todd Hale

13

KeyTool fa parte di JDK. Lo troverai, supponendo che tu abbia installato JDK con le impostazioni predefinite, in$JAVA_HOME/bin


9

Robby PondLa risposta può essere generalizzata per utilizzare JAVA_HOMEla variabile di ambiente e anche per compensare eventuali spazi bianchi che potrebbero verificarsi nel percorso (come Program Files):

"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

4

keytool fa parte di jdk, dovrebbe essere $ JAVA_HOME / bin / keytool


4

Keytool fa parte di Java SDK. Dovresti riuscire a trovarlo nella directory dell'SDK Java, ad es. C: \ Programmi \ Java \ jdk1.6.0_14 \ bin


4

Nella finestra cmd (deve essere eseguito come amministratore),

cd %JAVA_HOME% 

funziona solo se è stata impostata la variabile di ambiente di sistema JAVA_HOME. Per impostare la variabile di sistema per il tuo percorso, puoi farlo

setx %JAVA_HOME% C:\Java\jdk1.8.0_121\

Quindi, puoi digitare

cd c:\Java\jdk1.8.0_121\bin

o

cd %JAVA_HOME%\bin

Quindi, eseguire tutti i comandi forniti da JAVA jdk's, come ad esempio

keytool -genkey -v -keystore myapp.keystore -alias myapp

Devi solo rispondere alle domande (equivalenti a digitare i valori sulla riga cmd) dopo aver premuto invio! La chiave verrebbe generata


3

keytool si trova nella directory bin JDK ($ JAVA_HOME / bin). JAVA_HOME è la directory di installazione di JDK. Per usare quella riga di comando dovresti anche includere $ JAVA_HOME / bin nella tua variabile d'ambiente PATH.


3

Android: dove eseguire il comando keytool in Android

Il comando Keytool può essere eseguito al prompt dei comandi dos, se JRE è stato impostato nella variabile classpath.

Ad esempio, se desideri ottenere l'impronta digitale MD5 del certificato di debug SDK per Android,

basta eseguire il seguente comando ...

C:\Documents and Settings\user\.android>  keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

dov'è C:\Documents and Settings\user\.android>il percorso che contiene debug.keystoreciò che deve essere certificato.

Per informazioni dettagliate, visitare http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint


3

A seconda della versione di Eclipse (sto usando Kepler). Vai a Windows> Preferenze> Android> Crea.

Troverai il percorso della posizione del tuo keystore di debug e l'impronta digitale SHA1 (che puoi semplicemente copiare e usare)


3

Ho trovato questo in un altro post, che non ha ottenuto molti voti positivi, ma è stato molto utile per me. Quindi lo aggiungerò qui.

Android Studio porterà un keytool con esso.

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

Puoi vedere il suo post qui sotto di Richar Heap, con un utile riferimento. L'ho già visto prima, ma me ne sono dimenticato. https://stackoverflow.com/a/51524526/4446406


2

KEYTOOL si trova in SDK JAVAC. Quindi è necessario trovarlo all'interno della directory che contiene javac


2

Se hai installato Visual Studio con il supporto allo sviluppo di Xamarin / mobile, avrai un'installazione java qui C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\, come nel mio caso.


1

keytoolviene fornito con il JDK. Se stai usando Cygwin, probabilmente questo è già sul tuo percorso. Altrimenti, potresti scavare nella cartella bin del tuo JDK.

Probabilmente dovrai usare cygwin comunque per far funzionare i pipe shell ( |).


Potresti dirmi come correre sotto il comando? keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64
Nguyen Minh Binh

1
Si l'ho fatto. e quando eseguo sopra il comando, il CMD dice: 'openssl' non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch.
Nguyen Minh Binh,

Probabilmente dovrai installare anche il pacchetto openssl tramite l'installazione di cygwin.
Matthew Willis,

1
Ho già installato il pacchetto openssl. Il problema persiste :(
Nguyen Minh Binh

Puoi eseguire openssl da solo? Quali opzioni vedi quando digiti "apri" e premi tab?
Matthew Willis,

1

Poche osservazioni mentre stavo ottenendo lo stesso problema (Windows). 1. Il tubo shell è importante. 2. Se stai usando OpenSSL o Cygwin, sicuramente devi installarlo. 3. keytool viene fornito con JDK, quindi o devi indicarlo nel comando o hai cd nella cartella JDK / bin (dove risiede l'exe) 4. Il keystore di debug si trova in genere in ~ / .android / debug.keystore 5. password è "android" indipendentemente dal fatto che tu la digiti o la digiti quando richiesto. 6. Per il nome alias, è possibile aprire (NON SALVARE, basta aprire e chiudere) il file keystore con qualsiasi editor e leggerlo. 7. PIÙ IMPORTANTE - C'è una differenza nel specificare il percorso del keystore tra virgolette e senza. Ho funzionato usando il percorso del keystore tra virgolette doppie. Come detto remix090378 e come da istruzioni, questo comando ha funzionato davvero - cd C: \ Programmi \ Java \ jdk1.7.0_09 \ bin

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


0

Nel mio caso, avevo già generato un file APK usando il comando ionic cordova build android --prode avevo bisogno di ottenere l'impronta digitale SHA-1 per il file APK già esistente. Ecco come l'ho ottenuto eseguendo il seguente comando nella directory App:

keytool -list -printcert -jarfile app-debug.apk

Quindi, ho praticamente eseguito il comando sopra nella seguente posizione dell'app:

C:\myApp\platforms\android\app\build\outputs\apk\debug>keytool -list -printcert -jarfile app-debug.apk

Questo mi ha dato l'impronta digitale SHA1 come: 7B:6B:AD:...

Spero che questo aiuti qualcuno!


0

Dato che hai installato Java e preferibilmente un JDK nel tuo sistema (rispondendo a Windows perché lo hai menzionato nella tua domanda) dovresti avere l'utilità keytool nella bincartella dell'installazione .

In questo caso, quello che puoi fare dopo è aggiungere quella cartella bin alla PATHvariabile d'ambiente dell'installazione di Windows.

La prossima volta che aprirai una shell di Windows e digiterai keytoolsarai in grado di eseguire l'utilità effettiva.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.