Hoe kan ik de keytool vinden en uitvoeren

Ik lees een ontwikkelingsgids van Facebook-ontwikkelaars op hier

Er staat dat ik keytool moet gebruiken om de handtekening voor mijn app te exporteren, zoals:

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

Ik weet niet hoe ik de keytool moet vinden om deze uit te voeren. Ik heb geprobeerd een Windows-opdrachtprompt te openen en de bovenstaande opdracht te plakken, maar het werkte niet.


Antwoord 1, autoriteit 100%

Ik heb zelf een oplossing gevonden, zoals onderstaand citaat. Het werkt prima.

"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

Antwoord 2, autoriteit 59%

Voer deze gewoon in de Windows-opdrachtprompt in.

cd C:\Program Files\Java\jdk1.7.0_09\bin
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName\.android\debug.keystore" -list -v

Het basiswachtwoord is android

U krijgt de sleutels MD5, SHA1en SHA256te zien; Kies degene die je nodig hebt.


Antwoord 3, autoriteit 37%

Volg deze stappen om de hashcode van de Android-sleutel te krijgen (voor Facebook-apps)

  1. Download de openssl voor Windows hier
  2. unzip nu naar c-schijf
  3. open cmd-prompt
  4. typ cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. typ dan alleen 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. Gereed

Volg deze stappen om de Certificaat-vingerafdrukcode (MD5) te krijgen

  1. ga naar – C:\Program Files\Java\jdk1.6.0_26\bin
  2. voer in de bin-map het bestand jarsigner.exeuit
  3. open cmd-prompt
  4. typ cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. typ dan opnieuw cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. het zal nu om het Keystore-wachtwoord vragen. De standaard is het type “android” en voer
  7. . in

  8. Gereed.

Antwoord 4, autoriteit 11%

keytool maakt deel uit van de JDK.

Probeer %{JAVA_HOME}\toe te voegen aan het exec-statement of c:\{path to jdk}\bin.


Antwoord 5, autoriteit 6%

De KeyTool maakt deel uit van de JDK. Je vindt het, ervan uitgaande dat je de JDK met standaardinstellingen hebt geïnstalleerd, in $JAVA_HOME/bin


Antwoord 6, autoriteit 6%

Ik vond dit in een ander bericht, dat niet veel stemmen kreeg, maar het was super handig voor mij. Dus zal het hier toevoegen.

Android Studiobrengt een keytool mee.

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

Je kunt zijn bericht hieronder van Richar Heap zien, met een handige referentie. Ik heb dit eerder gezien, maar was het vergeten. https://stackoverflow.com/a/51524526/4446406


Antwoord 7, autoriteit 4%

Robby Pond‘s Antwoord kan worden gegeneraliseerd om JAVA_HOMEomgevingsvariabele te gebruiken en om ook te compenseren voor alle lege plekken die op het pad kunnen voorkomen (zoals Program Files):

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

8, Autoriteit 2%

KeyTool is gevestigd in de map JDK BIN ($ Java_Home / Bin). Java_Home is uw JDK-installatiemap.
Om die opdrachtregel te gebruiken, moet u ook $ Java_Home / Bin op uw padomgeving variabele opnemen.


9, Autoriteit 2%

KeyTool is onderdeel van JDK, het moet $ Java_Home / Bin / KeyTool


10, Autoriteit 2%

Keytool maakt deel uit van de Java SDK. Je zou het kunnen vinden in je Java SDK-directory, b.v. C: \ Program Files \ Java \ JDK1.6.0_14 \ BIN


11, Autoriteit 2%

op CMD-venster (moet worden uitgevoerd als beheerder),

cd %JAVA_HOME% 

werkt alleen als u uw systeemomgeving variabele Java_Home hebt ingesteld. Om uw systeemvariabele voor uw pad in te stellen, kunt u dit doen

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

Dan kunt u

typen

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

of

cd %JAVA_HOME%\bin

Voer vervolgens alle opdrachten uit die wordt geleverd door Java JDK’s, zoals

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

U hoeft alleen de vragen te beantwoorden (equivalent aan het typen van de waarden op CMD-lijn) na het raken van ENTER! De sleutel zou worden gegenereerd


12

Afhankelijk van uw versie van Eclipse (ik gebruik Kepler).
Ga naar Windows & GT; Voorkeuren & GT; Android & GT; Bouwen.

U vindt het locatiepad van uw debug-keystore, evenals de SHA1-vingerafdruk (die u gewoon kunt kopiëren en gebruiken)


13

Als u Visual Studio hebt geïnstalleerd met Xamarin / Mobile Development Support, hebt u hier een Java-installatie C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\, zoals het was mijn zaak.


14

KeyTool is in Javac SDK. Dus je moet het vinden in de map die Contajs Javac


15

keytoolwordt geleverd met de JDK. Als u cygwin gebruikt, staat dit waarschijnlijk al op uw pad. Anders zou je in de bin-map van je JDK kunnen rondneuzen.

Je zult waarschijnlijk toch cygwin moeten gebruiken om de shell pipes (|) te laten werken.


Antwoord 16

Weinig observaties terwijl ik hetzelfde probleem kreeg (Windows).
1. Shell-pijp is belangrijk.
2. Als u OpenSSL of Cygwin gebruikt, moet u deze zeker installeren.
3. keytool wordt geleverd met JDK, dus je moet ernaar verwijzen in de opdracht of je hebt cd naar de JDK/bin-map (waar de exe zich bevindt)
4. De debug-keystore bevindt zich meestal op ~/.android/debug.keystore
5. wachtwoord is “android”, of u het nu toetst of typt wanneer daarom wordt gevraagd.
6. Voor de aliasnaam kunt u het keystore-bestand openen (NIET OPSLAAN, gewoon openen en sluiten) met elke editor en het lezen.
7. HET BELANGRIJKSTE – Er is een verschil in het specificeren van het keystore-pad tussen aanhalingstekens en zonder. Ik heb het werkend gekregen door het keystore-pad tussen de dubbele aanhalingstekens te gebruiken.
Zoals remix090378 zei en volgens de instructie, werkte deze opdracht inderdaad –
cd C:\Program Files\Java\jdk1.7.0_09\bin

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


Antwoord 17

In aanvulling op Gareth’s

antwoord hierboven, het onderstaande werkte voor mij

Voer deze gewoon in de Windows-opdrachtprompt in.

Zorg ervoor dat de terminal wordt uitgevoerd als beheerder

  1. cd C:\Program Files\Android\Android Studio\jre\bin

  2. keytool -list -v -keystore “C:\Users\admin.android\debug.keystore” -alias androiddebugkey -storepass android -keypass android

Lees meer

N:B: Dit moet worden gedaan na de eerste build, omdat de sleutels pas worden gegenereerd na de eerste build


Antwoord 18

In mijn geval had ik al een APK-bestand gegenereerd met het commando ionic cordova build android --proden ik moest de SHA-1-vingerafdruk krijgen voor het reeds bestaande APK-bestand. Hier is hoe ik het kreeg door de volgende opdracht uit te voeren in de App-directory:

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

Dus ik heb de bovenstaande opdracht in feite uitgevoerd op de volgende app-locatie:

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

Hierdoor kreeg ik de SHA1-vingerafdruk als: 7B:6B:AD:...

Ik hoop dat dit iemand helpt!


Antwoord 19

U kunt ook het volgende doen:

  • kopieer het bat-bestand hieronder naar een map die al aanwezig is in uw omgevingsvariabele PATH
  • gebruik dan gewoon de opdracht keytoolin een Windows-shell

De werkelijke locatie van de keytool is gedefinieerd in het bat-bestand. Als de locatie niet klopt, scant het bat-bestand uw systeem om mogelijke locaties in (sub)mappen van ProgramFiles te detecteren.

Vind ook keytool2.bat, een handige sneltoets voor “keytool -v -list -keystore”, die veel wordt gebruikt om snel de inhoud van een jks-bestand te controleren.

keytool.bat :


:: 
:: 
:: "keytool alias" script by Céphas
:: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables)
:: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path
::
:: also see keytool2.bat that automatically adds the following parameters in the keytool command line : -v -list -keystore, for quick display of jks content
:: 
:: 
@echo off
set THIS_SCRIPT=%~f0
rem  setlocal enableDelayedExpansion : necessary for paths containing special chars
setlocal enableDelayedExpansion
rem  set PATH to keytool.exe ; path must include the final \
rem  ^ is escape char for paths containing & \ < > ^ | 
set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\
set PROG_NAME=keytool.exe
rem full_path, with "", to work with paths containing special chars
set FULL_KT_PATH="!PATH_TO!!PROG_NAME!"
rem checks if keytool.exe exists
(dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no
if %KT_FOUND%==yes (
    rem keytool found => launching it with all supplied parameters
    rem 
    rem
    %FULL_KT_PATH% %*
    rem
    rem
) else (
    rem keytool not found, trying to find it in %ProgramFiles%
    echo.
    echo Keytool not found in expected location, scan in progess ...
    echo.
    cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul
    cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul
    echo.
    echo *********
    echo Path to program keytool.exe not properly defined, or keytool/java missing on this system
    echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly
    echo *********
    echo.
    pause
)    

keytool2.bat :


:: 
:: 
:: "keytool2 alias" script by Céphas
:: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables)
:: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path
::
:: keytool2 automatically adds the following parameters in the keytool command line : -v -list -keystore
:: thus, to quickly display the full content of a jks file, usage is simply : keytool2 \path\to\your\keystore.jks [-alias your_alias]
:: 
:: 
@echo off
set THIS_SCRIPT=%~f0
rem  setlocal enableDelayedExpansion : necessary for paths containing special chars
setlocal enableDelayedExpansion
rem  set PATH to keytool.exe ; path must include the final \
rem  ^ is escape char for paths containing & \ < > ^ | 
set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\
set PROG_NAME=keytool.exe
rem full_path, with "", to work with paths containing special chars
set FULL_KT_PATH="!PATH_TO!!PROG_NAME!"
rem checks if keytool.exe exists
(dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no
if %KT_FOUND%==yes (
    rem keytool found => launching it with all supplied parameters
    rem 
    rem
    %FULL_KT_PATH% -v -list -keystore %*
    rem
    rem
) else (
    rem keytool not found, trying to find it in %ProgramFiles%
    echo.
    echo Keytool not found in expected location, scan in progess ...
    echo.
    cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul
    cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul
    echo.
    echo *********
    echo Path to program keytool.exe not properly defined, or keytool/java missing on this system
    echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly
    echo *********
    echo.
    pause
)    


Antwoord 20

Aangezien u Java en bij voorkeur een JDK op uw systeem hebt geïnstalleerd(antwoord voor Windows omdat u dit in uw vraag hebt vermeld), moet u het hulpprogramma keytool op de binmap.

Als dat het geval is, kun je vervolgens die bin-map toevoegen aan de PATHomgevingsvariabelevan je Windows-installatie.

De volgende keer dat u een Windows-shell opent en keytooltypt, kunt u het eigenlijke hulpprogramma uitvoeren.

Other episodes