เราจำเป็นต้องสร้างความแตกต่างระหว่างตัวแปรสภาพแวดล้อมทั้งสองที่กล่าวถึงที่นี่สลับกันได้ หนึ่งคือตัวแปรJAVA_HOME อีกอันคือตัวแปรPath กระบวนการใด ๆ ที่อ้างอิงตัวแปร JAVA_HOME กำลังมองหาพา ธ การค้นหาไปยัง JDK ไม่ใช่ JRE การใช้ตัวแปร JAVA_HOME ไม่ได้มีไว้สำหรับคอมไพเลอร์ Java คอมไพเลอร์ตระหนักถึงตำแหน่งของตัวเอง ตัวแปรนี้มีไว้สำหรับซอฟต์แวร์อื่น ๆ เพื่อค้นหาคอมไพเลอร์ได้ง่ายขึ้น โดยทั่วไปแล้วตัวแปรนี้ใช้โดยซอฟต์แวร์ IDE เพื่อรวบรวมและสร้างแอปพลิเคชันจากซอร์สโค้ด Java ในทางตรงกันข้ามล่าม Windows CMD และซอฟต์แวร์บุคคลที่หนึ่งและบุคคลที่สามอื่น ๆ อ้างอิงตัวแปร Path ไม่ใช่ตัวแปร JAVA_HOME
ใช้กรณีที่ 1: รวบรวมจาก CMD
ตัวอย่างเช่นหากคุณไม่ได้ใช้ซอฟต์แวร์ IDE ใด ๆ และคุณต้องการรวบรวมจาก CMD ซึ่งเป็นอิสระจากไดเรกทอรีการทำงานปัจจุบันของคุณสิ่งที่คุณต้องการคือการตั้งค่าตัวแปร Path ให้ถูกต้อง ในกรณีของคุณคุณไม่จำเป็นต้องมีตัวแปร JAVA_HOME เนื่องจาก CMD ใช้ Path ไม่ใช่ JAVA_HOME เพื่อค้นหาคอมไพเลอร์ Java
ใช้กรณีที่ 2: รวบรวมจาก IDE
แต่ถ้าคุณจะใช้ซอฟต์แวร์ IDE บางส่วนแล้วคุณต้องมองไปที่เอกสารครั้งแรกของทั้งหมด อาจต้องตั้งค่า JAVA_HOME แต่อาจใช้ชื่อตัวแปรอื่นเพื่อจุดประสงค์เดียวกัน มาตรฐานความเป็นจริงในช่วงหลายปีที่ผ่านมาเป็น JAVA_HOME แต่นี่อาจไม่เป็นเช่นนั้นเสมอไป
ใช้กรณีที่ 3: การคอมไพล์จาก IDE และ CMD
หากนอกเหนือจากซอฟต์แวร์ IDE คุณยังต้องการรวบรวมจาก CMD ซึ่งเป็นอิสระจากไดเรกทอรีการทำงานปัจจุบันของคุณแล้วนอกจากตัวแปร JAVA_HOME คุณอาจต้องผนวกเส้นทางการค้นหา JDK ไปยังตัวแปร Path
JAVA_HOME กับเส้นทาง
หากปัญหาของคุณเกี่ยวข้องกับการคอมไพล์ Java คุณต้องตรวจสอบตัวแปร JAVA_HOME และ Path (หากมี) หากปัญหาของคุณเกี่ยวข้องกับการใช้งานจาวาคุณต้องตรวจสอบตัวแปร Path ของคุณ
ตัวแปรพา ธ ถูกใช้อย่างกว้างขวางทั่วทุกระบบปฏิบัติการ เนื่องจากมันถูกกำหนดโดยระบบและเนื่องจากเป็นตัวแปรเริ่มต้นที่ใช้สำหรับการค้นหา JRE จึงแทบไม่มีปัญหาใด ๆ ในการใช้งานแอปพลิเคชัน Java โดยเฉพาะอย่างยิ่งไม่ได้อยู่บน Windows ที่ตัวติดตั้งซอฟต์แวร์มักจะตั้งค่าทุกอย่างให้คุณ แต่ถ้าคุณติดตั้งด้วยตนเองสิ่งที่ปลอดภัยที่สุดคือการข้ามตัวแปร JAVA_HOME ไปด้วยกันและใช้ตัวแปร Path สำหรับทุกสิ่งทั้ง JDK และ JRE ซอฟต์แวร์ IDE รุ่นใด ๆ ที่ผ่านมาควรจะสามารถรับและใช้งานได้
symlinks
ลิงก์สัญลักษณ์อาจเป็นอีกวิธีหนึ่งในการอ้างอิงเส้นทางการค้นหา JDK โดยการย้อนกลับหนึ่งในตัวแปรสภาพแวดล้อมที่มีอยู่
ฉันไม่แน่ใจเกี่ยวกับ Oracle / Sun JDK / JRE รุ่นก่อนหน้า แต่อย่างน้อยโปรแกรมติดตั้งสำหรับ jdk1.8.0_74 ผนวกเส้นทางการค้นหาC:\ProgramData\Oracle\Java\javapath
ไปยังตัวแปร Path และวางไว้ที่จุดเริ่มต้นของค่าสตริง ไดเร็กทอรีนี้มีลิงก์สัญลักษณ์ไปยัง java.exe, javaw.exe และ javaws.exe ในไดเร็กทอรี JRE
ดังนั้นอย่างน้อยที่สุดกับ Java 8 JDK และอาจเป็น Java 8 JRE แบบสแตนด์อโลนจึงไม่จำเป็นต้องกำหนดค่าตัวแปรสภาพแวดล้อมสำหรับ JRE ตราบใดที่คุณใช้แพ็คเกจติดตั้งเพื่อตั้งค่า อาจมีความแตกต่างในการติดตั้ง Windows ของคุณอย่างไรก็ตาม โปรดทราบว่า Oracle JRE มาพร้อมกับ JDK
หากคุณเคยพบว่าการกำหนดค่า Java JDK ของคุณกำลังใช้คอมไพเลอร์เวอร์ชันผิดหรือดูเหมือนว่าทำงานโดยใช้เวทย์มนตร์โดยไม่ได้กำหนดไว้อย่างชัดเจนดังนั้น (โดยไม่ร่ายคาถา) คุณอาจมี symlink อยู่ในตัวแปรสภาพแวดล้อมของคุณ . ดังนั้นคุณอาจต้องการตรวจสอบ symlink