'Java' ไม่รู้จักว่าเป็นคำสั่งภายในหรือภายนอก


158

เมื่อพยายามตรวจสอบ Java เวอร์ชันปัจจุบันที่ฉันใช้งานอยู่ฉันได้รับข้อผิดพลาด "java ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือแบตช์ไฟล์"

ฉันใช้ระบบปฏิบัติการ Windows 7 และดาวน์โหลด JDK ล่าสุดและรู้สึกว่าฉันอาจลบจาวาออกจากเครื่องโดยไม่ตั้งใจเหมือนก่อนที่ฉันจะสามารถตรวจสอบเวอร์ชัน Java ได้โดยใช้คำสั่ง "java -version"

ฉันต้องดาวน์โหลดซอฟต์แวร์ใดเพื่อให้ Java ทำงานบนเครื่องของฉันอีกครั้ง

แก้ไข:

ฉันจัดการเพื่อให้ Java ทำงานจาก cmd ของฉันอีกครั้งหลังจากตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อมทั้งหมดชี้ไปที่ Java SDK ปัจจุบัน ขอบคุณสำหรับคำตอบทุกคำถามของฉัน

ชาวกะเหรี่ยง

คำตอบ:


200

คุณต้องกำหนดค่าตัวแปรสภาพแวดล้อมของคุณและJAVA_HOMEPATH

JAVA_HOMEต้องมีเส้นทางไปยัง java และคุณควรเพิ่ม% JAVA_HOME% \ binไปPATH

หรือคุณสามารถเพิ่มPATHเส้นทางทั้งหมดไปยังโฟลเดอร์ bin โดยไม่มีJAVA_HOMEตัวแปรอย่างไรก็ตามสิ่งนี้ทำให้น่ารำคาญขึ้นเล็กน้อยเมื่อคุณจำเป็นต้องมีจาวาเวอร์ชันมากกว่าหนึ่งบนเครื่องของคุณ (ด้วยวิธีที่คุณต้องการเปลี่ยนJAVA_HOMEและ ไม่รำคาญด้วยPATH)


ในกรณีของฉันฉันติดตั้ง jdk 7 และใช้งานได้ดีจนกระทั่งฉันอัปเดตเป็น jdk รุ่นใหม่กว่า 8 วิธีแก้ปัญหาคือถอนการติดตั้ง jdk เวอร์ชันเก่า
moein rahimi

1
การทำงานสำหรับฉันหลังจากลบ JAVA_HOME และกำหนดเส้นทางทั้งหมดไปยังโฟลเดอร์ Java ถังลงไปในครั้งแรกของเส้นทางตัวแปร
โมฮัมหมัดเฮย์ดารี

ฉันได้รับPATHตัวแปรแล้ว ฉันสามารถเปลี่ยนเนื้อหาโดยไม่ทำลายสิ่งอื่นใดได้หรือไม่
Liggliluff

อย่าลืมเพิ่มทั้งสองตัวแปร "JAVA_HOME" แล้วตามด้วย "PATH" ทั้งคู่เป็นตัวพิมพ์ใหญ่
Marco Ottina

ด้วยเหตุผลบางอย่างใน Windows 10 สิ่งนี้จะไม่ทำงาน ใส่เส้นทางแบบเต็มในตัวแปรแทนการใช้PATH %JAVA_HOME%ลองดูคำตอบนี้: stackoverflow.com/a/62590863/3337089
Nagabhushan SN

140

สำหรับ Windows 7:

  1. คลิกขวาที่ My Computer
  2. เลือก Properties
  3. เลือก Advanced System Settings
  4. เลือกAdvancedแท็บ
  5. เลือก Environment Variables
  6. เลือกPathใต้System Variables
  7. คลิกที่Editปุ่ม
  8. ในตัวแก้ไขค่าตัวแปรวางสิ่งนี้ไว้ที่จุดเริ่มต้นของบรรทัด

    C:\Program Files\Java\jdk1.7.0_72\bin;
  9. คลิกตกลงจากนั้นตกลงอีกครั้ง

  10. รีสตาร์ทพร้อมท์คำสั่งมิฉะนั้นจะไม่เห็นการเปลี่ยนแปลงตัวแปรพา ธ
  11. พิมพ์java -versioncommand prompt


หมายเหตุเกี่ยวกับขั้นตอนที่ 8:
1. เวอร์ชันของจาวาในเรื่องนี้อาจแตกต่างจากที่ใช้ที่นี่ - นี่เป็นเพียงตัวอย่างเท่านั้น
2. อาจจะมีค่าอื่น ๆ ในตัวแปรพา ธ มันสำคัญมากที่คุณจะไม่ลบสิ่งที่มีอยู่แล้ว นั่นเป็นสาเหตุที่คำแนะนำบอกให้วางค่าที่กำหนดไว้ที่จุดเริ่มต้นของบรรทัด - ซึ่งหมายความว่าคุณไม่ได้ลบค่าที่มีอยู่คุณเพียงวาง java ไว้ก่อน วิธีนี้จะช่วยแก้ไขปัญหาใด ๆ ที่คุณจะได้รับหาก Java เวอร์ชันอื่นอยู่ในเส้นทาง

หมายเหตุเกี่ยวกับขั้นตอนที่ 6:
1. กำหนดเส้นทางสำหรับคอมพิวเตอร์ไม่ใช่สำหรับผู้ใช้แต่ละคน อาจเป็นเพราะคุณกำลังทำงานกับคอมพิวเตอร์ที่นักพัฒนาซอฟต์แวร์คนอื่นใช้ด้วยซึ่งในกรณีนี้คุณต้องการตั้งค่าตัวแปรผู้ใช้มากกว่าตัวแปรระบบ


6
"พรอมต์คำสั่งรีสตาร์ทนี้มิฉะนั้นจะไม่เห็นการเปลี่ยนแปลงตัวแปรพา ธ "
Andrew Paes

1
อย่าใช้ ';' สำหรับ jdk 10
brainLoop

53

ดูเหมือนว่าคุณยังไม่ได้เพิ่มไดเรกทอรีที่ถูกต้องให้กับเส้นทางของคุณ

แรกหาที่ไดเรกทอรีคุณได้ติดตั้งใน Java. ตัวอย่างเช่นในกล่องของฉันมันอยู่ใน1C:\Program Files\java\jdk1.7.0_11 เมื่อคุณพบแล้วลองเรียกใช้โดยตรง ตัวอย่างเช่น:

c:\> "c:\Program Files\java\jdk1.7.0_11\bin\java" -version

เมื่อคุณมีรุ่นที่ถูกต้องแล้วให้เพิ่มbinไดเรกทอรีลงในPATHตัวแปรสภาพแวดล้อมของคุณ

โปรดทราบว่าคุณไม่ต้องการJAVA_HOMEตัวแปรสภาพแวดล้อมและไม่ได้ใช้เวลาสักครู่ เครื่องมือบางอย่างอาจใช้มัน - และถ้าคุณใช้อันใดอันหนึ่งแล้วให้แน่ใจว่าตั้งค่า - แต่ถ้าคุณใช้ (พูด) Eclipse และ command-line java/ javactools คุณก็ไม่ต้องใช้มัน


1ใช่สิ่งนี้เตือนฉันว่าฉันต้องอัปเดต ...


@SotiriosDelimanolis: ฉันจำไม่ได้ว่าครั้งล่าสุดที่ฉันต้องการมันเป็นการส่วนตัว เครื่องมือบางอย่างอาจ - แต่ฉันเพิ่งเริ่มเปลี่ยนสภาพแวดล้อมเมื่อฉันต้องการจริง ๆ มากกว่าที่จะเป็นเรื่องของหลักสูตร (ฉันจะแก้ไขคำตอบของฉันเพื่อระบุว่า)
Jon Skeet

1
ขอบคุณมากสำหรับคำตอบของคุณอย่างไรก็ตามหลังจากเพิ่มทั้งพา ธ ไปยังจาวาทั้งในตัวแปรสภาพแวดล้อม "พา ธ " และ "JAVA_HOME" ฉันยังดูเหมือนว่าจะได้รับข้อผิดพลาดเดียวกัน
ชาวกะเหรี่ยง

2
@ Karen: คุณลองขั้นตอนแรกของฉันในการรันอย่างชัดเจนหรือไม่? และคุณได้รีสตาร์ทพรอมต์คำสั่งหลังจากเปลี่ยนตัวแปรสภาพแวดล้อมของคุณหรือไม่
Jon Skeet

เมื่อฉันเรียกใช้ตัวเอียง c: \> "c: \ Program Files \ java \ jdk1.7.0_11 \ bin \ java" - เวอร์ชันตัวเอียงก็บอกว่า "java เวอร์ชัน '1.7.0_11' Java <TM> SE Runtime Environment <build 1.7 0_11-b21> Java HotSpot <TM> ไคลเอนต์ VM <build 23.6-b04, โหมดผสม, การแชร์>
ชาวกะเหรี่ยง

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

48

สมมติว่าติดตั้ง Java / JDK ไว้ในโฟลเดอร์: C: \ Program Files \ Java :

พา ธ การติดตั้ง Java / JDK

ทำตามขั้นตอน:

  1. ไปที่แผงควบคุม→ระบบ→การตั้งค่าระบบขั้นสูง→ขั้นสูง→ตัวแปรสภาพแวดล้อม ( Win+ Pause/Breakสำหรับระบบในแผงควบคุม )
  2. ในส่วนระบบตัวแปรคลิกที่ใหม่ ...
  3. ในการเขียนชื่อตัวแปร :JAVA_HOME
  4. ในการเขียนค่าตัวแปร : C:\Program Files\Java\binกดตกลง : เพิ่ม JAVA_HOME
  5. ในส่วนตัวแปรระบบดับเบิลคลิกที่Path
  6. กดใหม่แล้วเขียนC:\Program Files\Java\binกดOK : เพิ่มเส้นทาง Java
  7. ในหน้าต่างตัวแปรสภาพแวดล้อมกดตกลง
  8. รีสตาร์ท / เรียกใช้cmd.exeและเขียนjava --version:: Java เวอร์ชัน CMD

รักเคล็ดลับ (windows + Pause Break)
CodeFinity

ฉันเพิ่งลองด้วยหน้าต่าง 10 คำสั่งjava --versionไม่ทำงาน แต่ใช้java -versionงานได้
Steve

14

ตัวแปรสภาพแวดล้อมการค้นหา ป้อนคำอธิบายรูปภาพที่นี่

เปิด "แก้ไขตัวแปรสภาพแวดล้อมระบบ" จากนั้นคลิกที่ "ตัวแปรสภาพแวดล้อม" ป้อนคำอธิบายรูปภาพที่นี่

ภายใต้ "ตัวแปรผู้ใช้" คลิกที่ "เส้นทาง" จากนั้น "แก้ไข" ป้อนคำอธิบายรูปภาพที่นี่

ค้นหาเส้นทาง Java ของคุณแล้วคลิก "แก้ไข" ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นวางพา ธ ของโฟลเดอร์การติดตั้ง java ของคุณ ส่วนใหญ่คุณจะพบมันบนเส้นทางที่คล้ายกับสิ่งนี้ C: \ Program Files \ Java \ jdk-12.0.2 \ bin

จากนั้นคลิกตกลง ตอนนี้ในเมนูเริ่มพิมพ์ cmd เปิดพรอมต์คำสั่ง พิมพ์ java -version หากคุณทำถูกต้องควรแสดงดังนี้ ป้อนคำอธิบายรูปภาพที่นี่


9

สำหรับฉันมันเริ่มทำงานหลังจากวาง: ในการเริ่มต้นของเส้นทางตัวแปรระบบ: -


ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่



6

ทางออกของฉันคือการใส่ค่าเดียวกัน (เส้นทางไปยังโฟลเดอร์ถังขยะ JDK) ในJAVA_HOMEและPath

JAVA_HOME เส้นทาง


1
ยินดีต้อนรับสู่ SO โปรดเพิ่มข้อมูลเพิ่มเติม - เช่นสิ่งที่คุณใส่เข้าไปจริงJAVA_HOMEและPATHไม่อ้างอิงคำตอบอื่น ๆ
Michael Lihs

5

ปัญหานี้เกิดขึ้นกับ Windows 8 ขั้นแรกคัดลอก Path of java jdk ของคุณ - เช่น C: \ Program Files \ Java \ jdk1.7.0_51 \ bin

  1. คลิกขวาที่ไอคอน My Computer บนเดสก์ทอปและคลิก Properties

  2. เลือก 'การตั้งค่าระบบขั้นสูง' ในบานหน้าต่างด้านซ้าย

  3. ภายใต้แท็บ 'ขั้นสูง' เลือก 'ตัวแปรสภาพแวดล้อม' ที่ด้านล่าง

  4. ในตัวแปรระบบเลือก 'เส้นทาง' ตัวแปรแล้วแก้ไข

วางเส้นทางและเพิ่ม ';' ในตอนท้าย - เช่น C: \ Program Files \ Java \ jdk1.7.0_51 \ bin;


2
ตรวจสอบ (;) ที่ท้ายเส้นทางที่มีอยู่ก่อนที่คุณจะผนวก
Sanjeet A

3

ในกรณีของฉัน PATH ตั้งค่าอย่างถูกต้อง แต่ PATHEXT ถูกลบโดยฉันโดยไม่ได้ตั้งใจด้วยนามสกุล. exe นั่นเป็นสาเหตุที่หน้าต่างไม่สามารถหาจาวาหรือแอปพลิเคชัน. exe จากพรอมต์คำสั่ง หวังว่ามันจะช่วยใครซักคน


1

ผมมีปัญหาเหมือนกัน. เพียงติดตั้งจาวาบิตที่แน่นอนในคอมพิวเตอร์ของคุณ หากพีซีของคุณเป็น 64 บิตให้ติดตั้ง Java 64 บิต ถ้าเป็น 32 บิตก็จะกลับกัน :)


1

ไม่แน่ใจว่าทำไม แต่ในกรณีของฉันเหตุผลคือเพราะฉันใช้ขั้วอนาคอนดาแทน CMD

หลังจากฉันใช้ CMD และอัปเดตการตั้งค่าเส้นทางตามที่กล่าวถึงโดยความคิดเห็นทั้งหมดข้างต้นปัญหาได้รับการแก้ไขในด้านของฉัน


0

หากคุณมี cygwin ติดตั้งใน Windows Box หรือใช้ UNIX Shell แล้ว

Issue bash#which java

สิ่งนี้จะบอกคุณว่า Java อยู่ใน classpath ของคุณหรือไม่


0

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


0

หากคุณตั้งค่าตัวแปรสภาพแวดล้อม ( JAVA_HOMEและPATH) ภายใต้ตัวแปรผู้ใช้พรอมต์คำสั่ง (เรียกใช้ในฐานะผู้ดูแลระบบ) จะไม่ระบุจาวา เพื่อที่คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมภายใต้ตัวแปรระบบ

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