TL; DR
สำหรับผู้อ่านที่มีประสบการณ์:
- ค้นหาเส้นทาง Java; ดูเหมือนว่านี้:
C:\Program Files\Java\jdkxxxx\bin\
- ค้นหาเมนูเริ่มต้นสำหรับ "ตัวแปรสภาพแวดล้อม" เพื่อเปิดกล่องโต้ตอบตัวเลือก
PATHตรวจสอบ ลบเส้นทาง Java เก่า
PATHเพิ่มเส้นทางใหม่เพื่อ Java
JAVA_HOMEแก้ไข
- ปิดและเปิดคอนโซล / IDE อีกครั้ง
ยินดีต้อนรับ!
คุณพบหนึ่งในปัญหาทางเทคนิคที่ฉาวโฉ่ที่สุดที่ผู้เริ่มต้นใช้งาน Java: 'xyz' is not recognized as an internal or external command...ข้อความแสดงข้อผิดพลาด
สั้น, คุณไม่ได้ติดตั้ง Java ได้อย่างถูกต้อง ขั้นตอนสุดท้ายในการติดตั้ง Java บน Windows ต้องใช้ขั้นตอนแบบแมนนวล คุณต้องทำตามขั้นตอนเหล่านี้เสมอหลังจากติดตั้ง Java รวมถึงหลังจากอัพเกรด JDK
ตัวแปรสภาพแวดล้อมและ PATH
(หากคุณเข้าใจสิ่งนี้อยู่แล้วอย่าลังเลที่จะข้ามสามส่วนถัดไป)
เมื่อคุณเรียกใช้javac HelloWorld.javacmd ต้องกำหนดตำแหน่งที่javac.exeอยู่ สิ่งนี้สามารถทำได้ด้วยPATHตัวแปรสภาพแวดล้อม
ตัวแปรสภาพแวดล้อมเป็นคู่พิเศษค่าคีย์ (เช่นwindir=C:\WINDOWS) ส่วนใหญ่มาพร้อมกับระบบปฏิบัติการและบางอย่างจำเป็นสำหรับการทำงานของระบบที่เหมาะสม รายการของพวกเขาจะถูกส่งผ่านไปยังทุกโปรแกรม (รวมถึง cmd) เมื่อมันเริ่ม บน Windowsมีสองประเภท : ตัวแปรสภาพแวดล้อมของผู้ใช้และตัวแปรสภาพแวดล้อมของระบบ
คุณสามารถเห็นตัวแปรสภาพแวดล้อมของคุณเช่นนี้:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
PATHตัวแปรที่สำคัญที่สุดคือ ;มันเป็นรายการของเส้นทางที่แยกจากกันโดย เมื่อคำสั่งถูกป้อนลงใน cmd แต่ละไดเรกทอรีในรายการจะถูกสแกนเพื่อให้ทำงานได้
บนคอมพิวเตอร์ของฉันPATHคือ:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
เมื่อคุณเรียกใช้javac HelloWorld.java, cmd เมื่อตระหนักว่าjavacไม่ได้เป็นคำสั่งภายใน , การค้นหาระบบPATHPATHตามด้วยผู้ใช้ มันจะเข้าสู่กลไกไดเรกทอรีในรายการทุกคนและการตรวจสอบถ้าjavac.com, javac.exe, javac.batและอื่น ๆที่เป็นปัจจุบัน เมื่อพบว่าjavacมันทำงาน เมื่อไม่ได้ทำการพิมพ์'javac' is not recognized as an internal or external command, operable program or batch file.
คุณต้องเพิ่มไดเรกทอรี Java executables PATHไป
JDK เทียบกับ JRE
(หากคุณเข้าใจสิ่งนี้อยู่แล้วอย่าลังเลที่จะข้ามหัวข้อนี้)
เมื่อดาวน์โหลด Java คุณจะได้รับตัวเลือกระหว่าง:
- Java Runtime Environment (JRE) ซึ่งรวมถึงเครื่องมือที่จำเป็นเพื่อเรียกใช้โปรแกรม Java แต่ไม่ได้ที่จะรวบรวมใหม่ - มันมีแต่ไม่
javajavac
- ชุดพัฒนา Java (JDK) ซึ่งมีทั้ง
javaและjavacพร้อมกับโฮสต์ของเครื่องมือในการพัฒนาอื่น ๆ JDK เป็นชุดของ JRE
คุณต้องทำให้แน่ใจว่าคุณได้ติดตั้ง JDKแล้ว หากคุณติดตั้ง JRE ไว้แล้วเท่านั้นคุณจะไม่สามารถดำเนินการได้javacเนื่องจากคุณไม่ได้ติดตั้ง Java compiler ในฮาร์ดไดรฟ์ ตรวจสอบรายการโปรแกรม Windows ของคุณและตรวจสอบให้แน่ใจว่าชื่อแพคเกจ Java มีคำว่า "ชุดพัฒนา" อยู่ในนั้น
อย่าใช้ set
(หากคุณยังไม่ได้วางแผนที่จะข้ามส่วนนี้ไป)
คำตอบอื่น ๆ อีกหลายข้อแนะนำให้ดำเนินการรูปแบบของ:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
อย่าทำอย่างนั้น. มีปัญหาที่สำคัญหลายประการกับคำสั่งนั้น:
- คำสั่งนี้จะลบทุกอย่างจาก
PATHและแทนที่ด้วยเส้นทาง Java หลังจากดำเนินการคำสั่งนี้คุณอาจพบว่าคำสั่งอื่น ๆ ไม่ทำงาน
- เส้นทาง Java ของคุณอาจไม่ใช่
C:\Program Files\Java\jdk1.7.0_09\bin - คุณเกือบจะมี JDK เวอร์ชันใหม่กว่าซึ่งจะมีเส้นทางอื่น
- ใหม่
PATH ใช้เฉพาะกับเซสชัน cmd ปัจจุบัน คุณจะต้องป้อนsetคำสั่งอีกครั้งทุกครั้งที่คุณเปิด Command Prompt
คะแนน # 1 และ # 2 สามารถแก้ไขได้ด้วยเวอร์ชั่นที่ดีกว่านี้เล็กน้อย:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
แต่มันเป็นความคิดที่ไม่ดีโดยทั่วไป
ค้นหาเส้นทาง Java
วิธีที่ถูกต้องเริ่มต้นด้วยการค้นหาตำแหน่งที่คุณติดตั้ง Java ขึ้นอยู่กับว่าคุณติดตั้ง Java อย่างไร
ตัวติดตั้ง exe
คุณติดตั้ง Java ด้วยการรันโปรแกรมติดตั้ง โปรแกรมติดตั้งของออราเคิลวางเวอร์ชั่นของ Java ไว้ในC:\Program Files\Java\(หรือC:\Program Files (x86)\Java\) ด้วย File Explorer หรือ Command Prompt ไปที่ไดเรกทอรีนั้น
แต่ละโฟลเดอร์ย่อยแสดงถึงเวอร์ชันของ Java หากมีเพียงหนึ่งคุณได้พบมัน มิฉะนั้นให้เลือกอันที่ดูเหมือนเวอร์ชั่นที่ใหม่กว่า ตรวจสอบให้แน่ใจว่าชื่อโฟลเดอร์เริ่มต้นด้วยjdk(ตรงข้ามกับjre) ป้อนไดเรกทอรี
จากนั้นป้อนbinไดเรกทอรีของที่
ตอนนี้คุณอยู่ในไดเรกทอรีที่ถูกต้อง คัดลอกพา ธ หากใน File Explorer คลิกแถบที่อยู่ หากอยู่ในพรอมต์คำสั่งให้คัดลอกพรอมต์
เส้นทาง Java ที่ได้ควรอยู่ในรูปของ (โดยไม่มีเครื่องหมายอัญประกาศ):
C:\Program Files\Java\jdkxxxx\bin\
ไฟล์ซิป
คุณได้ดาวน์โหลด. zip ที่มี JDK แตกไปยังสถานที่สุ่มซึ่งมันจะไม่เข้าไปในทางของคุณ C:\Java\เป็นทางเลือกที่ยอมรับได้
จากนั้นค้นหาbinโฟลเดอร์ที่อยู่ภายใน
ตอนนี้คุณอยู่ในไดเรกทอรีที่ถูกต้อง คัดลอกเส้นทางของมัน นี่คือเส้นทาง Java
อย่าลืมย้ายโฟลเดอร์เพราะจะทำให้เส้นทางไม่ถูกต้อง
เปิดกล่องโต้ตอบการตั้งค่า

PATHนั่นคือโต้ตอบที่จะแก้ไข มีหลายวิธีในการเข้าถึงกล่องโต้ตอบนั้นขึ้นอยู่กับรุ่น Windows ของคุณการตั้งค่า UI และความสับสนของการกำหนดค่าระบบของคุณ
ลองสิ่งเหล่านี้:
- เริ่มเมนู / แถบค้นหาของกล่องค้นหา»ค้นหา "ตัวแปรสภาพแวดล้อม"
- ชนะ + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe»ตัวแปรสภาพแวดล้อม
- File Explorer »พิมพ์ลงในแถบที่อยู่
Control Panel\System and Security\System»การตั้งค่าระบบขั้นสูง (ซ้ายสุดในแถบด้านข้าง) »ตัวแปรสภาพแวดล้อม
- เดสก์ท็อป»คลิกขวาที่พีซีนี้»คุณสมบัติ»การตั้งค่าระบบขั้นสูง»ตัวแปรสภาพแวดล้อม
- เมนูเริ่ม»คลิกขวาที่คอมพิวเตอร์»คุณสมบัติ»การตั้งค่าระบบขั้นสูง»ตัวแปรสภาพแวดล้อม
- แผงควบคุม (โหมดไอคอน) »ระบบ»การตั้งค่าระบบขั้นสูง»ตัวแปรสภาพแวดล้อม
- แผงควบคุม (โหมดหมวดหมู่) »ระบบและความปลอดภัย»ระบบ»การตั้งค่าระบบขั้นสูง»ตัวแปรสภาพแวดล้อม
- เดสก์ท็อป»คลิกขวาที่คอมพิวเตอร์ของฉัน»ขั้นสูง»ตัวแปรสภาพแวดล้อม
- แผงควบคุม»ระบบ»ขั้นสูง»ตัวแปรสภาพแวดล้อม
สิ่งเหล่านี้ควรนำคุณไปสู่กล่องโต้ตอบการตั้งค่าที่ถูกต้อง
หากคุณอยู่ใน Windows 10, ไมโครซอฟท์มีความสุขคุณด้วยแฟนซี UI แบบใหม่PATHที่จะแก้ไข มิฉะนั้นคุณจะเห็นPATHความรุ่งโรจน์ที่เต็มไปด้วยเซมิโคลอนบีบลงในกล่องข้อความบรรทัดเดียว พยายามอย่างเต็มที่เพื่อแก้ไขที่จำเป็นโดยไม่ทำให้ระบบของคุณเสียหาย
สะอาด PATH
ดูที่ PATHดูที่คุณมีPATHตัวแปรสองตัวเกือบแน่นอน(เพราะผู้ใช้กับตัวแปรสภาพแวดล้อมของระบบ) คุณต้องดูทั้งคู่
ตรวจสอบเส้นทาง Java อื่น ๆและลบออก การดำรงอยู่ของพวกเขาสามารถทำให้เกิดความขัดแย้งได้ทุกประเภท (ตัวอย่างเช่นหากคุณมี JRE 8 และ JDK 11 อยู่PATHในลำดับนั้นjavacจะเรียกใช้คอมไพเลอร์ Java 11 ซึ่งจะสร้าง.classไฟล์เวอร์ชัน 55 แต่javaจะเรียกใช้ Java 8 JVM ซึ่งรองรับเฉพาะรุ่นที่ 52 เท่านั้นและ คุณจะพบข้อผิดพลาดเกี่ยวกับรุ่นที่ไม่สนับสนุนและไม่สามารถรวบรวมและเรียกใช้โปรแกรมใด ๆ ได้) หลีกเลี่ยงปัญหาเหล่านี้ด้วยการทำให้แน่ใจว่าคุณมีเส้นทาง Java หนึ่งเส้นทางPATHเท่านั้น และในขณะที่คุณอยู่ที่นี่คุณอาจถอนการติดตั้ง Java เวอร์ชันเก่าได้เช่นกันเช่นกัน และจำไว้ว่าคุณไม่จำเป็นต้องมีทั้ง JDK และ JRE
หากคุณมีC:\ProgramData\Oracle\Java\javapath, เอาว่าเป็นอย่างดี ออราเคิลตั้งใจที่จะแก้ปัญหาเส้นทาง Java แตกหลังจากการอัพเกรดโดยการสร้างลิงค์สัญลักษณ์ที่มักจะชี้ไปที่การติดตั้ง Java ล่าสุด แต่น่าเสียดายที่มันมักจะลงท้ายชี้ไปยังตำแหน่งที่ไม่ถูกต้องหรือไม่เพียงแค่การทำงาน เป็นการดีกว่าที่จะลบรายการนี้และจัดการเส้นทาง Java ด้วยตนเอง
PATHตอนนี้ยังเป็นโอกาสที่ดีในการดำเนินการดูแลทำความสะอาดทั่วไป หากคุณมีเส้นทางที่เกี่ยวข้องกับซอฟต์แวร์ที่ไม่ได้ติดตั้งบนพีซีของคุณอีกต่อไปคุณสามารถลบออกได้ นอกจากนี้คุณยังสามารถสลับลำดับของเส้นทางรอบ ๆ ได้ (หากคุณสนใจสิ่งนั้น)
เพิ่ม PATH
ตอนนี้ใช้เส้นทาง Java PATHคุณพบสามขั้นตอนที่ผ่านมาและวางไว้ในระบบ
มันไม่สำคัญว่าในเส้นทางของคุณจะอยู่ที่ไหนในรายการ วางไว้ที่ท้ายเป็นตัวเลือกที่ดี
หากคุณใช้ pre-Windows 10 UI ตรวจสอบให้แน่ใจว่าคุณใส่เครื่องหมายอัฒภาคอย่างถูกต้อง ควรมีหนึ่งรายการที่แยกทุกเส้นทางในรายการ
ไม่มีอะไรจะพูดที่นี่อีกแล้ว เพียงเพิ่มเส้นทางPATHและคลิกตกลง
ชุด JAVA_HOME
ในขณะที่คุณอยู่ที่นี่คุณอาจจะตั้งค่าJAVA_HOMEเช่นกัน นี่เป็นตัวแปรสภาพแวดล้อมอื่นที่ควรมีเส้นทาง Java โปรแกรม Java และไม่ใช่ Java จำนวนมากรวมถึงระบบสร้าง Java ยอดนิยมMavenและGradleจะโยนข้อผิดพลาดหากตั้งค่าไม่ถูกต้อง
หากJAVA_HOMEไม่มีอยู่สร้างมันเป็นตัวแปรสภาพแวดล้อมระบบใหม่ ตั้งค่าเป็นพา ธ ของไดเรกทอรี Java ที่ไม่มีbin/ไดเรกทอรีเช่นC:\Program Files\Java\jdkxxxx\ไดเรกทอรีคือ
อย่าลืมแก้ไขJAVA_HOMEหลังจากอัพเกรด Java ด้วย
ปิดและเปิดพร้อมรับคำสั่งอีกครั้ง
แม้ว่าคุณจะมีการปรับเปลี่ยนทุกโปรแกรมที่ทำงานรวมทั้งคำสั่งดูเก่าPATH PATHนี่เป็นเพราะรายการของตัวแปรสภาพแวดล้อมทั้งหมดจะถูกคัดลอกลงในโปรแกรมเมื่อเริ่มดำเนินการเท่านั้น หลังจากนั้นจะให้เฉพาะการคัดลอกแคชเท่านั้น
ไม่มีวิธีที่ดีในการรีเฟรชตัวแปรสภาพแวดล้อมของ cmdดังนั้นเพียงแค่ปิดพรอมต์คำสั่งแล้วเปิดอีกครั้ง หากคุณใช้ IDE ให้ปิดและเปิดใหม่อีกครั้ง
ดูสิ่งนี้ด้วย