keytoolを見つけて実行する方法


185

私はここでFacebook開発者の開発ガイドを読んでいます

次のようなアプリの署名をエクスポートするには、keytoolを使用する必要があると記載されています。

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

それを実行するためにkeytoolを見つける方法がわかりません。Windowsコマンドプロンプトを開いて上記のコマンドを貼り付けようとしましたが、うまくいきませんでした。


Linuxベースのシステム/usr/local/java/bin# ./keytoolを実行している場合Windowsを実行している場合find the JDK install path and check bin folder
Elshan

このアンサーを使用して、問題を解決することができますstackoverflow.com/a/57390582/13405428
ashraf alqaabera

回答:


184

以下のように自分で解決策を見つけました。正常に動作します。

"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
私はここでそれを見つけました:C:\ Program Files \ Java \ jre1.8.0_111 \ bin \ keytool.exe
Jaime Montoya

9
またはC:\ Program Files \ Android \ Android Studio \ jre \ bin
SHAHM

@SHAHMに感謝します。JavaAGAINを明示的にダウンロードしたり、最新バージョンにアップグレードするために毎週バグを修正したりしたくない私たちにとっては素晴らしいことです。
ピートアルビン

116

これらをWindowsコマンドプロンプトに入力するだけです。

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

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

基本パスワードは android

あなたはが表示されますMD5SHA1SHA256キー。必要なものを選択してください。


3
これは私のために働いた。デバッグキーには、-alias androiddebugkeyを使用します。
Broo 2013

私は次の行のリリースバージョンを使用しています:1)cd C:\ Program Files \ Java \ jdk1.8.0_162 \ binそして次の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

Androidキーハッシュコードを取得するには、次の手順に従ってください(Facebookアプリの場合)。

  1. ここでwindows用のopensslをダウンロードします
  2. Cドライブに解凍します
  3. cmdプロンプトを開く
  4. タイプ cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. 次にタイプするだけ 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. できた

証明書の指紋(MD5)コードを取得するには、次の手順に従います。

  1. -C:\ Program Files \ Java \ jdk1.6.0_26 \ binに移動します
  2. binフォルダー内でjarsigner.exeファイルを実行します
  3. cmdプロンプトを開く
  4. タイプ cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. 次に、もう一度cmdと入力します keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. ここでキーストアのパスワードを要求されます。デフォルトは " android"で、入力して入力してください
  7. できました。

これは私にとって最後のステップまで機能しました。「android」と入力すると、ゴミが吐き出されます...私の推測では、適切なエンコーディングが使用されていませんか?「何とか」のように入力すると、パスワードが間違っていたことがわかります。「android」と入力すると、パスワードが正しいことがわかります
ArtOfWarfare

私は、問題は、私はフラグが-listオフ残っていたがわかったと-v
ArtOfWarfare

21

keytoolはJDKの一部です。

%{JAVA_HOME}\execステートメントまたはの先頭に追加してくださいc:\{path to jdk}\bin


私は、同じディレクトリにCERファイルとトラストストア・ファイルを入れて、このコマンドを使用:"%JAVA_HOME%\bin\keytool" -import -keystore truststore -file certificate.cer -alias my-alias
トッド・ヘイル


9

Robby Pondの答えを一般化して、JAVA_HOME環境変数を使用し、パスで発生する可能性のある空白を補うこともできます(などProgram Files):

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

4

keytoolはjdkの一部であり、$ JAVA_HOME / bin / keytoolである必要があります


4

KeytoolはJava SDKの一部です。Java SDKディレクトリ(C:\ Program Files \ Java \ jdk1.6.0_14 \ binなど)にあります。


4

コマンドウィンドウで(管理者として実行する必要があります)、

cd %JAVA_HOME% 

システム環境変数JAVA_HOMEを設定した場合にのみ機能します。パスのシステム変数を設定するには、これを行うことができます

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

次に、次のように入力できます

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

または

cd %JAVA_HOME%\bin

次に、JAVA jdkが提供するコマンドを実行します。

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

Enterキーを押した後、質問に答えるだけです(コマンドラインで値を入力するのと同じです)。キーが生成されます


3

keytoolはJDK binディレクトリ($ JAVA_HOME / bin)にあります。JAVA_HOMEはJDKインストールディレクトリです。このコマンドラインを使用するには、PATH環境変数に$ JAVA_HOME / binも含める必要があります。


3

Android:Androidでkeytoolコマンドを実行する場所

JREがクラスパス変数で設定されている場合、keytoolコマンドはdosコマンドプロンプトで実行できます。

たとえば、AndroidのSDKデバッグ証明書のMD5フィンガープリントを取得する場合は、

次のコマンドを実行するだけです...

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

どこC:\Documents and Settings\user\.android>含むパスでdebug.keystore認定されなければならないことは。

詳細については、http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprintをご覧ください。


3

Eclipseのバージョンに応じて(私はKeplerを使用しています)。[ウィンドウ]> [設定]> [Android]> [ビルド]に移動します。

デバッグキーストアの場所のパスとSHA1フィンガープリント(コピーして使用できます)が見つかります


3

私はこれを多くの投票を得なかった別の投稿で見つけましたが、それは私にとって非常に役に立ちました。ここに追加します。

Android Studioはそれと一緒にkeytoolをもたらします。

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

以下のRichar Heapの投稿を参考にしてください。私は前にこれを見ましたが、それを忘れていました。https://stackoverflow.com/a/51524526/4446406


2

KEYTOOLはJAVAC SDKに含まれているため、javacを含むディレクトリ内で見つける必要があります。


2

Xamarin /モバイル開発サポートを備えたVisual StudioをインストールしたC:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\場合、私の場合と同様に、ここにJavaがインストールされます。


1

keytoolJDKに付属しています。cygwinを使用している場合、これはおそらくすでにパス上にあります。そうしないと、JDKのbinフォルダーを掘り下げる可能性があります。

シェルパイプ(|)を機能させるには、おそらくcygwinを使用する必要があるでしょう。


以下のコマンドを実行する方法を教えてもらえますか?keytool -exportcert -alias androiddebugkey -keystore〜/ .android / debug.keystore | openssl sha1 -binary | openssl base64
Nguyen Minh Binh、

1
はい、そうしました。上記のコマンドを実行すると、CMDは「openssl」は内部または外部のコマンド、操作可能なプログラム、またはバッチファイルとして認識されませんと言います。
Nguyen Minh Binh

おそらく、opensslパッケージをcygwinのセットアップを介してインストールする必要があります。
マシューウィリス

1
opensslパッケージをすでにインストールしました。問題はまだ発生します:(
Nguyen Minh Binh

opensslを単独で実行できますか?「開く」と入力してタブを押すと、どのオプションが表示されますか?
マシューウィリス

1

同じ問題が発生したときの観察はほとんどありません(Windows)。1.シェルパイプが重要です。2. OpenSSLまたはCygwinを使用している場合は、必ずインストールする必要があります。3. keytoolにはJDKが付属しているため、コマンドでポイントするか、JDK / binフォルダー(exeが存在する場所)にcdする必要があります。4。デバッグキーストアは通常〜/ .android / debug.keystoreにあります。 5.パスワードは、キーパスするか、プロンプトが表示されたときに入力するかに関わらず、「android」です。6.エイリアス名については、任意のエディターでキーストアファイルを開いて(保存せず、開いて閉じるだけ)、読み取ることができます。7.最も重要-引用符でキーストアパスを指定する場合と指定しない場合で違いがあります。二重引用符で囲まれたキーストアパスを使用して機能させました。remix090378が言ったように、そして指示に従って、このコマンドは実際に機能しました-cd C:\ Program Files \ Java \ jdk1.7.0_09 \ bin

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


0

私の場合、コマンドionic cordova build android --prodを使用してAPKファイルを既に生成しており、既存のAPKファイルのSHA-1フィンガープリントを取得する必要がありました。Appディレクトリで次のコマンドを実行して取得した方法は次のとおりです。

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

したがって、基本的には次のアプリの場所で上記のコマンドを実行しました。

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

これは私にSHA1フィンガープリントを与えました: 7B:6B:AD:...

これが誰かを助けることを願っています!


0

あなたがしていることを考えると、あなたのシステムにJavaおよび好ましくはJDKをインストールします(あなたがあなたの質問にそれを言及したので、Windows用の答え)インストールの上のkeytoolユーティリティが必要ですbinフォルダを。

その場合、次にできることは、そのbinフォルダーをPATH Windowsインストールの環境変数追加することです。

次にWindowsシェルを開いてタイプkeytoolすると、実際のユーティリティを実行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.