ข้อผิดพลาด: 'keytool' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ทำงานได้หรือไฟล์แบตช์


138

เมื่อฉันใช้คำสั่ง

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

ฉันได้รับข้อผิดพลาดนี้:

'keytool' ไม่รู้จักว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือไฟล์แบตช์

ฉันไม่สามารถรับลายนิ้วมือใบรับรอง (MD5) บนคอมพิวเตอร์ของฉัน

ฉันได้รับรองว่าไฟล์ที่เก็บคีย์มีอยู่ในตำแหน่งที่เหมาะสม

ความช่วยเหลือใด ๆ

คำตอบ:


221

ตรวจสอบว่าไดเร็กทอรีที่ปฏิบัติการได้ของ keytool นั้นอยู่ใน%PATH%ตัวแปรสภาพแวดล้อมของคุณ

ตัวอย่างเช่นบนเครื่อง Windows 7 ของฉันมันอยู่ใน C:\Program Files (x86)\Java\jre6\binและ%PATH%ตัวแปรของฉันดูเหมือนว่าC:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Java\jre6\bin;C:\WINDOWS\System32\WindowsPowerShell\v1.0\(และรายการอื่น ๆ อีกมากมาย)


ฉันป้อน C: \ Program Files \ Java \ jdk1.6.0_21 \ bin> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -passpass android -keypass android ข้อผิดพลาดที่ฉันได้รับคือข้อผิดพลาด keytool: java.lang.Exception: ไฟล์ Keystore ไม่มีอยู่: .android \ debug .keystore
Shalini

หากคุณทำเช่นนั้นก็จะมองหาที่เก็บคีย์C:\Program Files\Java\jdk1.6.0_21\bin\.android\debug.keystoreซึ่งเกือบจะไม่ใช่เส้นทางที่ถูกต้องอย่างแน่นอน คุณต้องให้เส้นทางที่ถูกต้องเต็มไปยังที่เก็บคีย์ของคุณ
Ben Williams

1
ไฟล์ keystore อยู่ที่นี่ C: \ Documents and Settings \ Shalini \ .android> ดังนั้นเมื่อฉันป้อน C: \ Documents and Settings \ Shalini \ .android> keytool -list -alias androiddebugkey -keystore .android \ debug.keystore -storepass -keypass android ฉันได้รับข้อผิดพลาดเดียวกันนี้ 'keytool' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอกโปรแกรมปฏิบัติการหรือไฟล์แบทช์
Shalini

15
ลองC:\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
เบ็นวิลเลียมส์

1
ตกลงฉันป้อน C: \ Documents และ Settings \ Shalini \ .android> C: \ 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 ข้อผิดพลาดคือชื่อไฟล์ชื่อไดเรกทอรีหรือไวยากรณ์ฉลากปริมาณไม่ถูกต้อง
Shalini

92

สิ่งนี้ใช้ได้สำหรับฉัน !! :

ไปที่พา ธ นี้หรือที่คุณเคยมีไฟล์ keytool.exe ของคุณ

C:\Program Files\Java\jre7\bin

shiftคลิกขวาค้างไว้-> จากนั้นกดOpen command window here

เทอร์มินัลจะปรากฏขึ้นวางสิ่งนี้ใน:

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

ให้ทั้ง MD5 และ SHA1


ใช้งานได้ แต่คำตอบของ @ Amt87 จะทำให้แน่ใจว่าคุณมี keytool ในไดเรกทอรีใด ๆ โดยไม่ต้อง cd แรกไปยังไดเรกทอรีที่มี keytool อยู่ (windows เท่านั้น) ใน OS X (Mac) แก้ไข. profile ของคุณและตรวจสอบให้แน่ใจว่าได้รวม: $ PATH ไว้ท้ายหรือคุณจะไม่มีคำสั่ง (ดูarchitectryan.com/2012/10/02/… )
เคล็ดลับ

68

พบมัน

ไปที่:

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

ไปที่:

cmd -> keytool -list -alias androiddebugkey -keystore "C:\Users\meee\.android\debug.keystore" -storepass android -keypass android

10
  1. ไปที่คอมพิวเตอร์ของฉัน -> คลิกขวา -> คุณสมบัติของระบบ -> ตัวแปรสภาพแวดล้อม -> เส้นทาง -> เพิ่มคุณ jdk / bin ให้กับเส้นทางนี้

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

* ถ้ายังไม่ได้ผล

  1. ใน cmd กำหนดเส้นทางโดยใช้คำสั่งด้านล่าง

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

ตอนนี้เส้นทางถูกตั้งค่าตอนนี้คุณสามารถใช้ keytool


ขอบคุณใน Windows 10 ฉันลองวิธีแก้ปัญหาแรกแล้วด้วยเหตุผลบางอย่างไม่ทำงาน คนที่สองใช้งานได้ดี
NineCattoRules

ขอบคุณ ตัวเลือกที่สองทำงานให้ฉันบน Windows 10 x64
mdhz

9

บน windows 8 ไปที่ C: \ Program Files \ Java \ jre7 \ bin และในแถบที่อยู่พิมพ์ "cmd" โดยไม่มีเครื่องหมายคำพูด นี่จะเป็นการเปิดเครื่อง จากนั้นพิมพ์ในสตริงเป็นอธิบายที่นี่


8

ดังนั้นหากคุณมีโครงสร้างต่อไปนี้ในขณะนี้:

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

จากนั้นดำเนินการ:

C:\Program Files\Java\jre6\bin>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 

ฉันมี jdk-13 .. มันไม่มีไฟล์ jre ฉันจะแก้ปัญหานี้ได้อย่างไร
raman raman

5

ตรวจสอบให้แน่ใจว่าตั้งค่า JAVA_HOME ไว้แล้วและเส้นทางในตัวแปรสภาพแวดล้อมสะท้อนถึงไดเรกทอรีถังเก็บของ JAVA_HOME โดยทั่วไป PATH ควรจะสามารถค้นหาไฟล์ keytools.exe ในตำแหน่ง jdk ของคุณ


5

สิ่งที่คุณทำได้คือการนำทางไปยังปลายทาง jre ในคอมพิวเตอร์ของคุณผ่านทางบรรทัดคำสั่งจากนั้นเมื่อคุณไปถึง bin คุณพิมพ์คำสั่ง keytool และมันจะทำงาน

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
]
]

1
ข้อใดต่อไปนี้คือแฮชคีย์และอันไหนคือแฮชคีย์การพัฒนาและอันไหนคือรีลีสคีย์แฮช
TPWang

4

ง่ายเพียงแค่หาสถานที่ keytool ปฏิบัติการตามปกติอยู่ในตามตัวอย่างในเครื่องคอมพิวเตอร์ของฉันอยู่ในjava/jre(Version)/bin C:\Program Files\Java\jre7\binทั้งหมดที่คุณต้องทำคือการไปที่ตัวแปรสภาพแวดล้อม , คลิกเส้นทางที่จะทำให้มันใช้งานแล้วคลิกแก้ไขแล้วเพิ่มเส้นทางที่สมบูรณ์ที่ keytool ของคุณสำหรับฉันฉันจะเพิ่มC:\Program Files\Java\jre7\binนี้จะช่วยให้คุณสามารถดำเนินการ keytool คำสั่งโดยไม่ต้องไปไดเรกทอรีที่ ติดตั้ง keytool


3

ถ้าคุณต้องการรัน keytool จากตำแหน่งใด ๆ ของเทอร์มินัล

ตัวอย่าง: C:> keytool

คุณต้องเพิ่มตัวแปรของระบบ

สำหรับ Windows:

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

2) add to Path
%JAVA_HOME%\bin;

2

ซึ่งหมายความว่าเชลล์ของคุณไม่พบเครื่องมือในฮาร์ดดิสก์ของคุณ

A)

  • เปลี่ยนไดเรกทอรีทำงานเป็น C:\Program Files\Java\jre6\bin\
  • ปฏิบัติ keytool -list -alias androiddebugkey keystore <full directory name make sure that you use enclosing in quotes> -storepass android -keypass android

B)

  • เพิ่มC:\Program Files\Java\jre6\bin\ไปยังPATHตัวแปรของคุณ


2

ฉันประสบความพยายามอย่างมากที่จะหาทางแก้ไขและในที่สุดฉันก็พบวิธีแก้ปัญหาโดยการตั้งค่าเส้นทางjreไปยังตัวแปรระบบโดยไปที่ ::

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

ภายใต้ตัวแปรของระบบให้คลิกที่ใหม่

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

โดยที่ค่าตัวแปรควรเป็นพา ธ ไปยังโฟลเดอร์ถังขยะของ JDK

จากนั้นเปิด command prompt และเปลี่ยน directory เป็นโฟลเดอร์ bin ของ JDK เช่นนี้

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

จากนั้นคัดลอกและวางรหัสด้านล่างเป็นคำสั่ง

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

1

ให้:

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

นอกจากนี้ในบรรทัดของคุณมีที่ว่างในที่เก็บคีย์ กรุณาตรวจสอบ


1

เปิด "ตัวแปรสภาพแวดล้อม" (คุณสามารถไปถึงได้จากการค้นหาเมนูเริ่มใน Win10) ตรวจสอบพา ธ ที่ jdk อยู่อีกครั้งเพื่อให้แน่ใจว่ามีอยู่ สำหรับฉันมันบอกว่า "... jdk1.8 / bin" แต่เมื่อฉันคัดลอกลงใน Windows Explorer หรือพรอมต์คำสั่งก็บอกว่ามันไม่มีอยู่ ฉันตรวจสอบว่ามันควรจะอยู่ที่ไหนและมันก็บอกว่า "jdk1.8.0_77"

การเปลี่ยนชื่ออย่างง่ายของการตั้งค่าใน Android Studio และ keytool ทำงานได้!


0

ผลงานดี

ไปที่เส้นทาง

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

จากนั้นป้อนรหัสผ่าน Ketsore และงานเสร็จ !!


0

เปิดพรอมต์คำสั่งพิมพ์สิ่งนี้ ..

"c: \ Program Files (x86) \ Java \ jdk1.7.0 \ bin \ keytool.exe" รายการ -v -ias androiddebugkey -keystore "C: \ Users \ EIS.android \ debug.keystore" -storepass android -keypass หุ่นยนต์

จากนั้นกด Enter คีย์ MD5 และ SHA1 จะได้รับ


0

ฉันรู้ว่ามีคำตอบหลายข้ออยู่แล้ว แต่ไม่มีคำตอบใดที่เหมาะกับฉันดังนั้นฉันกำลังโพสต์คำตอบที่เหมาะกับฉันอาจมีประโยชน์สำหรับใครบางคน

ก่อนอื่นไดเรกทอรีทั้งหมดไปยัง keytool.exe จะต้องอยู่ในเส้นทาง

และถ้าแทนที่จะเป็นไดเรกทอรีที่อยู่บนเส้นทางมันจะให้ข้อผิดพลาดแล้วลองเริ่มบรรทัดคำสั่งในฐานะผู้ใช้ปกติแทนที่จะเป็นผู้ดูแลระบบหรือเปลี่ยนไดเรกทอรีเป็นไดเรกทอรีบ้าน



0

ค้นหาที่ keytool.exe ของคุณภายในโฟลเดอร์การติดตั้ง java

ฉัน C:\Program Files\Java\jre1.8.0_181\binเปิด cmd ได้ทุกที่และวิ่ง

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

เปลี่ยนพา ธ เป็นพา ธ ที่คุณพบ keytool.exe ของคุณ


0

กรณีของฉันคือมันไม่ทำงานทุกที่ที่ฉันเรียกว่าไม่ว่าฉันจะเส้นทางไฟล์หรือไม่ถ้าฉันเปิดด้วย PowerShell

แต่มันใช้งานได้ถ้าฉันเปิดด้วย cmd


0

เพียงค้นหาเส้นทางต่อไปนี้: C: \ →ไฟล์โปรแกรม→ Java → jre1.xxx → bin
ตรวจสอบให้แน่ใจว่าโฟลเดอร์ bin นี้มี keytool.exe นี้อยู่

จากนั้นเปิดพรอมต์คำสั่ง

จากนั้นพิมพ์: (cd หมายถึงไดเรกทอรีการเปลี่ยนแปลง) cd C: \ Program Files \ Java \ jre1.8.0_231 \ bin

จากนั้นพิมพ์คำสั่งแล้วกด Enter


0

คำสั่ง keytool อาจไม่อยู่ในเส้นทางของคุณ - เป็นส่วนหนึ่งของ Java ซึ่งติดตั้งเป็นส่วนหนึ่งของ Android Studio สำหรับเส้นทางคอนกรีตให้รัน flutter doctor -v และค้นหาพา ธ ที่พิมพ์หลังจาก 'Java binary at:' จากนั้นใช้เส้นทางที่ผ่านการรับรองโดยสมบูรณ์แทนที่ java (ตอนท้าย) ด้วย keytool หากเส้นทางของคุณมีชื่อที่คั่นด้วยช่องว่างเช่น Program Files ให้ใช้รูปแบบที่เหมาะสมกับแพลตฟอร์มสำหรับชื่อ ตัวอย่างเช่นบน Mac / Linux ให้ใช้ Program \ Files และใน Windows ใช้ "Program Files"


0

วิธีแก้ไขข้อผิดพลาดอย่างง่าย ๆ คือคุณต้องเปลี่ยนไดเรกทอรีโฟลเดอร์ในพรอมต์คำสั่ง ตามค่าเริ่มต้นในแท็บรับคำสั่งหรือในเทอร์มินัล (ภายในสตูดิโอ Android ด้านล่าง) พา ธ จะถูกตั้งค่าเป็น C: \ Users # ชื่อของพีซีที่คุณเลือก \ AndroidStudioProjects # ชื่อแอพ \ flutter_app> เปลี่ยนตาม: - C: \ Users #Name ของพีซีที่คุณเลือก \ AndroidStudioProjects # ชื่อแอพ \ flutter_app> cd \

พิมพ์ ** cd ** (#after flutter_app>) พิมพ์เฉพาะ cd \ not comma

จากนั้นพิมพ์ cd Program Files \ Java \ jre1.8.0_251 \ bin (#remember เพื่อตรวจสอบชื่อไฟล์ของ jre อย่างถูกต้อง)

ตอนนี้พิมพ์keytool -list -v -keystore "% USERPROFILE% .android \ debug.keystore" -alias androiddebugkey -passpass android -keypass android (โดยไม่ต้องเว้นวรรคใด ๆ พิมพ์คำสั่ง)

สกรีนช็อตของรหัสที่จะเรียกใช้


-2
  1. เปิดที่ KEYTOOL.EXE ของคุณในไฟล์ JAVA ของคุณเช่น C: \ Program Files \ Java \ bin \ keytool.exe

  2. กดปุ่ม SHIFT และคลิกขวาที่โฟลเดอร์ BIN ที่ตั้ง keytool.exe ของคุณแล้วคลิกเปิดคำสั่ง CMD หรือ RUN จากที่นี่

  3. สิ่งนี้จะเปิด cmd จากนั้นพิมพ์

keytool -exportcert -alias ชื่อของคุณ KEYSTORE -keystore PATH OF KEYSTORE.jks "|" C: \ OpenSSL \ bin \ openssl "sha1 - ไบนารี |" C: \ OpenSSL \ bin \ openssl "base64

  1. ป้อนรหัสผ่านป้อน Android และ BOOOOOOOM ... คุณมีรหัสของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.