แอ็พพลิเคชันที่ใช้ java จำนวนมากต้องการตั้งค่าตัวแปร JAVA_HOME env จุดประสงค์ของตัวแปรนี้คืออะไร?
แอ็พพลิเคชันที่ใช้ java จำนวนมากต้องการตั้งค่าตัวแปร JAVA_HOME env จุดประสงค์ของตัวแปรนี้คืออะไร?
คำตอบ:
ตัวแปรสภาพแวดล้อมคือสตริงที่มีข้อมูลเช่นไดรฟ์เส้นทางหรือชื่อไฟล์
ตัวแปรสภาพแวดล้อม JAVA_HOMEจุดไปยังไดเรกทอรีที่สภาพแวดล้อมรันไทม์ Java (JRE) ติดตั้งบนคอมพิวเตอร์ของคุณ
จุดประสงค์คือชี้ไปที่ที่ติดตั้ง Java $JAVA_HOME/bin/java
ควรรันรันไทม์ Java
เมื่อคุณเรียกใช้โปรแกรม Java ที่คุณจำเป็นต้องเริ่มแรก JVM โดยทั่วไปนี้จะทำโดยการเรียกใช้ปฏิบัติการบน Windows นี้เป็นjava.exe คุณสามารถทำได้หลายวิธีเช่นให้เส้นทางแบบเต็ม:
C:\somedir\bin\java.exe
หรืออาจมีบนเส้นทางของคุณ
คุณระบุเป็นอาร์กิวเมนต์บรรทัดคำสั่งไฟล์คลาสหรือไฟล์ Jar ที่มีไฟล์คลาสซึ่งเป็นโปรแกรมของคุณ แต่นั่นยังไม่เพียงพอ java.exe เองก็ต้องการทรัพยากรอื่น ๆ อีกมากมายไม่ใช่อย่างน้อยก็คือไลบรารี Java ทั้งหมด โดยการตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME คุณระบุตำแหน่งที่จะพบ JRE และด้วยเหตุนี้ทรัพยากรรันไทม์ทั้งหมดจึงจะพบ คุณควรตรวจสอบให้แน่ใจว่า Java เฉพาะที่คุณเรียกใช้นั้นตรงกับการตั้งค่าของ JAVA_HOME
คุณอาจต้องวางJAVA_HOME\bin
เส้นทางของคุณไว้ก่อนเพื่อที่ว่าหากjava.exe
สร้างสำเนาของตัวมันเอง (เช่นเพื่อรวบรวม JSP) มันจะเลือกเวอร์ชันที่เหมาะสม
ตามที่ @dirai ที่นี่ JAVA_HOME
ไม่ได้ใช้ Javaแต่โดยเครื่องมือของบุคคลที่สามเช่น Apache Tomcat อย่างไรก็ตามแอปพลิเคชันส่วนใหญ่จะทำงานได้โดยไม่ต้องตั้งค่าตัวแปรนี้ แต่บางตัวอาจแสดงพฤติกรรมที่ไม่คาดคิด
JAVA_HOME
เป็นตัวแปรสภาพแวดล้อม
จะต้องมีการตั้งค่าบนระบบปฏิบัติการอื่น ตรวจสอบลิงค์ต่อไปนี้
ยังเห็นที่นี่สำหรับข้อมูลเพิ่มเติม
environment
ด้วยpath
ซึ่งเป็นสิ่งที่แตกต่างกัน แต่ใช้ใน Windows ตรงเช่นเดียวกับในลินุกซ์
JAVA_HOME
ช่วยให้คุณสามารถรันการติดตั้ง java หลาย ๆ ตัวได้ แม้ว่าคุณจะมี/usr/lib/jvm/java-1.8.0/bin/java
ใน PATH ของคุณก่อน แต่ก็มีประโยชน์ที่จะสามารถพูดJAVA_HOME=/usr/lib/jvm/java-1.5.0
และมี "java" เริ่มต้นที่คุณเรียกใช้โปรแกรมให้ใช้อีกตัวหนึ่งแทนโดยเป็นเรื่องของการตั้งค่าสภาพแวดล้อม สิ่งนี้ช่วยให้โปรแกรมเมอร์สามารถใช้ java ที่ต้องการได้แม้ว่าจะไม่ได้ติดตั้งในตำแหน่งระบบปกติและทดสอบหรือจัดเตรียมความเข้ากันได้แบบย้อนกลับกับเวอร์ชันอื่นนั้น และไม่เสี่ยงต่อการถูกรีเซ็ตใน PATH โดยโปรแกรมอื่นที่ติดตั้งไว้เช่นการอัปเดตเวอร์ชันหลักสำหรับ java เอง