Jak mogę znaleźć i uruchomić narzędzie?

185

Czytam przewodnika rozwoju Facebooku programiści tutaj

Mówi, że muszę użyć keytool, aby wyeksportować podpis mojej aplikacji, taki jak:

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

Nie wiem, jak znaleźć narzędzie, aby go uruchomić. Próbowałem otworzyć wiersz polecenia systemu Windows i wkleić powyższe polecenie, ale nie zadziałało.

Nguyen Minh Binh
źródło
jeśli korzystasz z systemu Linux, /usr/local/java/bin# ./keytooljeśli korzystasz z systemu Windowsfind the JDK install path and check bin folder
Elshan
znalazłem tę odpowiedź, której możesz użyć do rozwiązania problemu stackoverflow.com/a/57390582/13405428
ashraf alqaabera

Odpowiedzi:

184

Znalazłem rozwiązanie samodzielnie, jak poniżej cytat. To działa dobrze.

"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
Nguyen Minh Binh
źródło
6
Znalazłem go tutaj: C: \ Program Files \ Java \ jre1.8.0_111 \ bin \ keytool.exe
Jaime Montoya
9
Lub C: \ Program Files \ Android \ Android Studio \ jre \ bin
SHAHM
Dzięki @SHAHM: świetnie dla nas ludzie, którzy nie chcą jawnie PONOWNIE pobrać oprogramowania Java i co tydzień otrzymują aktualizacje, aby uaktualnić do najnowszej wersji.
Pete Alvin
116

Po prostu wprowadź je w wierszu polecenia systemu Windows.

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

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

Hasło podstawowe to android

Zostanie przedstawiony z MD5, SHA1i SHA256kluczy; Wybierz ten, którego potrzebujesz.

remiks090378
źródło
3
to zadziałało dla mnie. Do kluczy debugowania użyj -alias androiddebugkey.
Broo,
Używam do wydania następnej linii: 1) cd C: \ Program Files \ Java \ jdk1.8.0_162 \ bin i następne 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

Aby uzyskać kod skrótu dla Androida, wykonaj następujące kroki (dla aplikacji na Facebooku)

  1. Pobierz openssl dla Windows tutaj
  2. teraz rozpakuj na dysk c
  3. otwórz wiersz polecenia cmd
  4. rodzaj cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. następnie wpisz tylko 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. Gotowe

Aby uzyskać kod odcisku palca certyfikatu (MD5), wykonaj następujące kroki

  1. przejdź do - C: \ Program Files \ Java \ jdk1.6.0_26 \ bin
  2. w folderze bin uruchom jarsigner.exeplik
  3. otwórz wiersz polecenia cmd
  4. rodzaj cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. następnie ponownie wpisz na cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. poprosi teraz o hasło do magazynu kluczy. Domyślnie „ android” wpisz i wpisz
  7. Gotowe.
noelyahan
źródło
To działało dla mnie aż do ostatniego kroku. Po wpisaniu „Androida” wyrzuca śmieci… Domyślam się, że nie używa właściwego kodowania? Jeśli wpisuję coś w stylu „bla”, oznacza to, że hasło było nieprawidłowe. Więc wie, że mam prawidłowe hasło, kiedy piszę „android”
ArtOfWarfare
Znalazłem problem
polegający na tym,
21

keytool jest częścią JDK.

Spróbuj dodać %{JAVA_HOME}\do instrukcji exec lub c:\{path to jdk}\bin.

Robby Pond
źródło
Plik cer i plik zaufanych certyfikatów umieściłem w tym samym katalogu i użyłem tego polecenia:"%JAVA_HOME%\bin\keytool" -import -keystore truststore -file certificate.cer -alias my-alias
Todd Hale
13

KeyTool jest częścią JDK. Znajdziesz go, zakładając, że zainstalowałeś JDK z ustawieniami domyślnymi w$JAVA_HOME/bin

Chris Cashwell
źródło
9

Robby PondOdpowiedź można uogólnić, aby użyć JAVA_HOMEzmiennej środowiskowej i zrekompensować wszelkie spacje, które mogą wystąpić na ścieżce (np. Program Files):

"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Aleksiej
źródło
4

keytool jest częścią jdk, powinien to być $ JAVA_HOME / bin / keytool

James.Xu
źródło
4

Keytool jest częścią Java SDK. Powinieneś być w stanie znaleźć go w katalogu Java SDK, np. C: \ Program Files \ Java \ jdk1.6.0_14 \ bin

2bard
źródło
4

W oknie cmd (należy uruchomić jako administrator),

cd %JAVA_HOME% 

działa tylko, jeśli skonfigurowano systemową zmienną środowiskową JAVA_HOME. Aby ustawić zmienną systemową dla swojej ścieżki, możesz to zrobić

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

Następnie możesz wpisać

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

lub

cd %JAVA_HOME%\bin

Następnie wykonaj dowolne polecenia dostarczone przez JDVA jdk, takie jak

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

Musisz tylko odpowiedzieć na pytania (równoważne wpisaniu wartości na linii cmd) po naciśnięciu Enter! Klucz zostanie wygenerowany

Jenna Leaf
źródło
3

keytool znajduje się w katalogu bin JDK ($ JAVA_HOME / bin). JAVA_HOME to katalog instalacyjny JDK. Aby użyć tego wiersza poleceń, należy również dołączyć $ JAVA_HOME / bin do zmiennej środowiskowej PATH.

Roman Mazur
źródło
3

Android: gdzie uruchomić komendę keytool w Androidzie

Polecenie Keytool można uruchomić w wierszu polecenia dos, jeśli w zmiennej classpath ustawiono środowisko JRE.

Na przykład, jeśli chcesz uzyskać odcisk palca MD5 certyfikatu debugowania SDK dla Androida,

po prostu uruchom następujące polecenie ...

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

gdzie C:\Documents and Settings\user\.android>jest ścieżka zawierająca to, debug.keystorektóre musi być certyfikowane.

Aby uzyskać szczegółowe informacje, odwiedź http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint

Youdhveer
źródło
3

W zależności od twojej wersji Eclipse (używam Keplera). Przejdź do systemu Windows> Preferencje> Android> Kompilacja.

Znajdziesz ścieżkę lokalizacji swojego magazynu kluczy debugowania, a także odcisk palca SHA1 (który możesz po prostu skopiować i użyć)

GraSim
źródło
3

Znalazłem to w innym poście, który nie uzyskał wielu pozytywnych opinii, ale był dla mnie bardzo pomocny. Dodaję to tutaj.

Android Studio przyniesie ze sobą narzędzie.

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

Możesz zobaczyć jego post poniżej Richar Heap, z pomocnym odniesieniem. Widziałem to wcześniej, ale zapomniałem o tym. https://stackoverflow.com/a/51524526/4446406

Gareth
źródło
2

KEYTOOL znajduje się w JAVAC SDK. Więc musisz go znaleźć w katalogu zawierającym javac

suba
źródło
2

Jeśli zainstalowałeś Visual Studio z obsługą programowania Xamarin / mobile, będziesz mieć tutaj instalację Java C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\, podobnie jak mój przypadek.

Nieminen
źródło
1

keytoolpochodzi z JDK. Jeśli używasz cygwina, prawdopodobnie jest to już na twojej ścieżce. W przeciwnym razie możesz przekopać się w folderze bin JDK.

Prawdopodobnie będziesz musiał mimo wszystko użyć cygwin, aby powłoki shell ( |) działały.

Matthew Willis
źródło
Czy możesz mi powiedzieć, jak uruchomić poniżej polecenia? keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64
Nguyen Minh Binh
1
Tak. a kiedy uruchamiam powyżej polecenia, CMD mówi: „openssl” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
Nguyen Minh Binh
Prawdopodobnie musisz także zainstalować pakiet openssl poprzez instalację cygwina.
Matthew Willis
1
Zainstalowałem już pakiet openssl. Problem nadal występuje :(
Nguyen Minh Binh
Czy potrafisz sam uruchomić openssl? Jakie opcje widzisz po wpisaniu „otwórz” i naciśnięciu klawisza Tab?
Matthew Willis
1

Kilka uwag, gdy otrzymywałem ten sam problem (Windows). 1. Rura płaszczowa jest ważna. 2. Jeśli używasz OpenSSL lub Cygwin, zdecydowanie musisz go zainstalować. 3. keytool jest dostarczany z JDK, więc albo musisz wskazać go w poleceniu, albo masz cd do folderu JDK / bin (gdzie znajduje się exe) 4. Magazyn kluczy debugowania zazwyczaj znajduje się w ~ / .android / debug.keystore 5. hasło to „android”, bez względu na to, czy go pominiesz, czy wpiszesz po wyświetleniu monitu. 6. W przypadku nazwy aliasu możesz otworzyć (nie zapisywać, po prostu otworzyć i zamknąć) plik magazynu kluczy za pomocą dowolnego edytora i go przeczytać. 7. NAJWAŻNIEJSZE - Istnieje różnica w określaniu ścieżki do magazynu kluczy w cudzysłowach i bez. Udało mi się to, wykorzystując ścieżkę do pliku kluczy w podwójnych cudzysłowach. Jak powiedział remiks090378 i zgodnie z instrukcją, to polecenie rzeczywiście działało - cd C: \ Program Files \ Java \ jdk1.7.0_09 \ bin

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

Zeena
źródło
0

W moim przypadku wygenerowałem już plik APK za pomocą polecenia ionic cordova build android --prodi potrzebowałem uzyskać odcisk palca SHA-1 dla już istniejącego pliku APK. Oto, jak go uzyskałem, uruchamiając następujące polecenie w katalogu aplikacji:

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

Zasadniczo uruchomiłem powyższe polecenie w następującej lokalizacji aplikacji:

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

To dało mi odcisk palca SHA1 jako: 7B:6B:AD:...

Mam nadzieję, że to komuś pomoże!

Devner
źródło
0

Biorąc pod uwagę, że zainstalowałeś Javę i najlepiej JDK w swoim systemie (odpowiadając na Windows, ponieważ wspomniałeś o tym w swoim pytaniu), powinieneś mieć narzędzie keytool w binfolderze instalacji .

W takim przypadku możesz następnie dodać ten folder bin do PATHzmiennej środowiskowej instalacji systemu Windows.

Następnym razem, gdy otworzysz powłokę Windows i wpiszesz, będziesz keytoolmógł uruchomić właściwe narzędzie.

Christos Alexiou
źródło