วิธีการตั้งค่า java_home บน Windows 7?


422

ฉันไปที่ตัวแปรสภาพแวดล้อมใน 'ระบบ' ในแผงควบคุมและสร้างตัวแปรใหม่สองตัวหนึ่งตัวสำหรับตัวแปรผู้ใช้และอีกตัวสำหรับตัวแปรระบบ ทั้งสองชื่อ JAVA_HOME และทั้งคู่ชี้ไปที่

C: \ อาทิตย์ \ SDK \ jdk \ bin

แต่ด้วยเหตุผลบางอย่างฉันยังคงได้รับข้อผิดพลาดด้านล่างเมื่อใช้คำสั่ง Java ...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


3
คุณปิด cmd และเปิดใหม่หรือไม่ ดูเหมือนว่าคุณกำลังชี้ไปที่ JRE ไม่ใช่ JDK คุณติดตั้ง JDK แล้วหรือยัง
โกรธ

ฉันได้ติดตั้ง JDK แล้วและตั้งอยู่ใน C: \ Sun \ SDK \ jdk \ bin ซึ่งฉันได้ตั้งค่า java_home เป็น
ดีเร็ก

ฉันได้เริ่มต้นใหม่ ......... สองสามครั้งตั้งแต่ ........
Derek

ดูเหมือนว่ายังคงมีการค้นหาใน C: \ Program Files \ Java \ jre6 \ lib \ c คุณสามารถทำเสียงก้อง% JAVA_HOME% ในพรอมต์คำสั่งของคุณและดูสิ่งที่รายงาน
โกรธ

3
ทางออกคือ:
Omit

คำตอบ:


673

ค้นหาไดเรกทอรีการติดตั้ง JDK

ก่อนอื่นคุณต้องรู้เส้นทางการติดตั้งสำหรับ Java Development Kit

เปิดพา ธ การติดตั้งเริ่มต้นสำหรับ JDK:

C:\Program Files\Java

ควรมีไดเรกทอรีย่อยเช่น:

C:\Program Files\Java\jdk1.8.0_172

หมายเหตุ:มีเพียงการวางเส้นทางไปยัง jdk ที่ไม่มี / bin ในตอนท้าย (ตามที่แนะนำในหลาย ๆ ที่) เช่น C: \ Java \ jdk1.8.0_172 และไม่ใช่ C: \ Java \ jdk1.8.0_172 \ bin!


ตั้งค่าตัวแปร JAVA_HOME

เมื่อคุณมีเส้นทางการติดตั้ง JDK:

  1. คลิกขวาที่My Computerไอคอนบนเดสก์ทอปของคุณและเลือกProperties
  2. คลิกแท็บขั้นสูงจากนั้นคลิกปุ่มตัวแปรสภาพแวดล้อม
  3. ภายใต้ตัวแปรของระบบคลิกใหม่
  4. ป้อนชื่อตัวแปรJAVA_HOME
  5. ป้อนค่าตัวแปรเป็นพา ธ การติดตั้งสำหรับ Java Development Kit
  6. คลิกตกลง
  7. คลิกใช้การเปลี่ยนแปลง

หมายเหตุ:คุณอาจต้องรีสตาร์ท Windows

บทความฉบับสมบูรณ์ที่นี่บนบล็อกของฉัน: การตั้งค่าตัวแปร JAVA_HOME ใน Windows


121
ขอบคุณ ในที่สุดฉันก็รู้ว่ามีเพียงแค่ใส่เส้นทางไปยัง jdk โดยไม่ต้อง / bin ในที่สุด (ตามที่แนะนำในสถานที่จำนวนมาก) เช่น C: \ Java \ jdk1.6.0_31 และไม่ใช่ C: \ Java \ jdk1.6.0_31 \ bin!
salocinx

24
พระเจ้าห้ามมีโปรแกรมติดตั้งที่ทำขั้นตอนนี้ให้คุณ :) ฉันเพิ่งเปลี่ยนจากรุ่น Enterprise เป็นรุ่น Community และฉันมั่นใจว่าฉันดาวน์โหลดสิ่งที่ผิดเพราะมันเป็นคลิกเดียวที่รุ่น Enterprise: p
John Humphreys - w00te

6
บางครั้งการเปลี่ยนแปลงที่หลากหลายของระบบจะไม่มีผลจนกว่าคุณจะรีสตาร์ทหน้าต่าง
Andy

11
วิธีที่เร็วกว่าคือกดปุ่ม Start จากนั้นเริ่มพิมพ์ตัวแปรสภาพแวดล้อม
Casebash

4
/Java/jre*ไม่ใช่ไดเรกทอรี JDK นี่คือ Java Runtime Enviroment ไดเร็คทอรี JDK อยู่ในไดเรกทอรีที่แยกต่างหากถ้าคุณต้องการที่จะทำบางสับบ้า
ericn

157

สิ่งที่ใช้ได้ผลสำหรับฉันคือการเพิ่ม%JAVA_HOME%\binตัวแปรสภาพแวดล้อมเส้นทางด้วยJAVA_HOMEตัวแปรสภาพแวดล้อมที่ชี้ไปยังjdkโฟลเดอร์


126

คุณต้องติดตั้ง JDK ก่อนในระบบของคุณ

ตั้งค่า Java Home

JAVA_HOME = C: \ Program Files \ Java \ jdk1.7.0 [ตำแหน่งของไดเรกทอรีการติดตั้ง JDK ของคุณ]

เมื่อคุณมีเส้นทางการติดตั้ง JDK:

  • คลิกขวาที่ไอคอน My Computer
  • เลือกคุณสมบัติ
  • คลิกแท็บการตั้งค่าระบบขั้นสูงทางด้านซ้ายของหน้าจอ
  • Aadvance Popup เปิดอยู่
  • คลิกที่ปุ่มตัวแปรสภาพแวดล้อม

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

  • ภายใต้ตัวแปรของระบบคลิกใหม่
  • ป้อนชื่อตัวแปรเป็น JAVA_HOME
  • ป้อนค่าตัวแปรเป็นพา ธ การติดตั้งสำหรับ Java Development Kit
  • คลิกตกลง
  • คลิกใช้การเปลี่ยนแปลง

ตั้ง JAVA Path ภายใต้ตัวแปรระบบ

เส้นทาง = C: \ Program Files \ Java \ jdk1.7.0; [ผนวกค่าด้วยเซมิโคลอน]

ตรวจสอบที่นี่


14
JAVA_HOME ควรมี "\ bin" หรือไม่ คำตอบอื่น ๆ ที่นี่ดูเหมือนจะแนะนำ "bin" ควรรวมอยู่ใน PATH แต่ไม่ใช่สำหรับ JAVA_HOME
devuxer

72
JAVA_HOME ไม่ควรมี \ bin
Larry Silverman

5
[PLUS ONE] ดอกไม้ที่ดี!
GingerHead

แต่ใน Image ที่คุณป้อนด้วย \ bin
NaveenDA

32

ใน cmd (ชั่วคราวสำหรับหน้าต่าง cmd นั้น):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%

2
จริง หากคุณใช้งานsetxระบบJAVA_HOMEจะยังคงตั้งค่าหลังจากคุณปิดเครื่องคอมพิวเตอร์ จากนั้นคุณไม่ต้องตั้งค่าอีกครั้ง ยังbinไม่จำเป็น
Tenzin

ใช่ แต่ถ้าคุณไม่ต้องการติดตั้ง Java อย่างเป็นทางการดังนั้น sgrillon กล่าวว่าคุณสามารถตั้งค่าชั่วคราวสำหรับอินสแตนซ์นั้น ยังดีกว่าการสร้างแฟ้มชุดที่คุณสามารถเรียกใช้เพื่อเปิดหน้าต่างพร้อมรับคำสั่งและชุดJAVA_HOME, PATHและCLASSPATHจากนั้นคุณสามารถมี“แบบพกพา” สภาพแวดล้อม Java
Synetech

มันเป็นความจริง แต่ "" ไม่จำเป็นสำหรับการตั้งค่าที่อยู่ JAVA_HOME
Aboozar Rajabi

1
@Aboozar Rajabi คุณต้องใช้ "" ถ้า ... เส้นทางมีช่องว่าง
sgrillon

19

คุณจำเป็นต้องตั้งค่าให้C:\Sun\SDK\jdk(สมมติว่าเป็นที่ที่มีการติดตั้ง JDK - มันไม่ได้เริ่มต้น) - ไม่ใส่ \ bin C:\Sun\SDK\jdk\binใน

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

คุณอาจต้องเพิ่ม%JAVA_HOME%\binเส้นทางด้วย (ขึ้นกับว่าคุณเรียกใช้จากผู้ใช้หรือจากผู้ใช้ทั้งหมดรวมถึงระบบ)


17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

แผงควบคุม> Java, Java แท็บคลิกปุ่ม View ใน Runtime Parameter ให้ป้อน:

-Djava.home=YOUR_PATH_HERE

หรือเมื่อคุณเรียกใช้ Java คุณสามารถเพิ่มสวิตช์บรรทัดคำสั่งนั้นเป็นคำสั่ง:

java -Djava.home=PATH SomeJavaApp

สิ่งที่แผงควบคุมดูเหมือนว่าจะใช้สำหรับ Java รุ่นเชิงพาณิชย์เท่านั้น ไม่ใช่สำหรับรุ่น GPL
โทมัสเวลเลอร์


7

สำหรับผู้ที่ยังคงนิ่งงันกับปัญหานี้ (ฉันลองทุกคำแนะนำข้างต้น) -

หากคุณใช้ Windows รุ่น 64 บิตและติดตั้ง JDK 32 บิตนอกเหนือจากการปรับPATHตัวแปรแล้วคุณอาจต้องปรับตัวแปรรีจิสตรีด้วย

ฉันดึงผมออกมาโดยตั้งค่าPATHตัวแปรของฉันอย่างถูกต้อง- ยังไม่เกิดประโยชน์ - จากนั้นเพียงค้นหารายการ Java ที่ "ว่าง" ในรีจิสทรีของฉันดูเหมือนว่าจะเป็นการแก้ไข Java Runtime Environment "ผิดปกติ"

โดยการใช้Process Monitorโปรแกรมดูฉันพยายามเริ่มต้นเพื่อดมกลิ่นที่มันถูกมองในรีจิสทรีสำหรับ Java (Runtime Environment) ฉันค้นพบชัยชนะที่พบว่ามันกำลังค้นหาในรายการรีจิสทรีรุ่น32 บิตที่พบในHKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment.

ภายในคีย์นั้นคุณควรค้นหาคีย์ย่อยของเวอร์ชัน Java ที่ติดตั้งต่าง ๆ (อดีตและ / หรือปัจจุบัน) คลิกที่คีย์ย่อยของรุ่นล่าสุด (ตัวอย่างเช่นคีย์ย่อยของฉันคือ 1.7.0_25 ในปัจจุบัน) หลังจากคลิกที่คีย์ย่อยที่คุณจะเห็นค่าสตริงรีจิสทรีที่ระบุไว้ในที่เหมาะสมและโดยเฉพาะอย่างยิ่งและJavaHome RuntimeLibคุณต้องแก้ไขค่าของทั้งสองค่าเพื่อให้สะท้อนถึงทั้งโฟลเดอร์ปัจจุบันและไฟล์ jvm.dll ตามลำดับ

ตัวอย่างเช่นในกรณีของฉันค่าถูกตั้งไว้ที่ก่อนหน้านี้C:\Program Files (x86)\Java\jre7และC:\Program Files (x86)\Java\jre7\bin\client\jvm.dllที่ไม่มีอยู่ในเครื่องของฉัน ผมต้องปรับปรุงเหล่านี้ไปยังโฟลเดอร์ปัจจุบันและไฟล์และC:\Program Files (x86)\Java\jdk1.7.0_25\jreC:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll

สิ่งนี้จะขึ้นอยู่กับทั้งเวอร์ชันของ Java (JDK และ / หรือ JRE) ที่คุณติดตั้ง - 32 หรือ 64 บิต - และระบบปฏิบัติการประเภทใดที่คุณใช้อยู่ - 32 หรือ 64 บิต เพิ่งรู้ว่าพวกเขาจะปรากฏในสถานที่ต่าง ๆ ภายในรีจิสทรี (เช่นWow6432Nodeสำหรับแอปพลิเคชัน 32 บิตในกรณีของฉันด้วยการติดตั้ง JDK 32 บิตบนเครื่อง 64 บิต)

ตอนนี้ฉันได้อัพเดตค่ารีจิสตรี้ทั้งสองแล้วโปรแกรมของฉันก็ทำงานได้อย่างไร้ที่ติโดยไม่มีการสะดุดหรือการร้องเรียนเกี่ยวกับ Java Runtime Environment ที่หายไปอีก (เกิดจากรีจิสตรี)


1
ฉันใช้ Windows 64 บิตและมีทั้ง: C: \ Program Files (x86) \ Java \ และ C: \ Program Files \ Java \ ตอนนี้คำถามของฉันคือสิ่งที่ java_home ของฉันควรชี้ไปที่ใด
voidMainReturn

ที่น่าสนใจ; ฉันมีโฟลเดอร์ Java อยู่ใต้โฟลเดอร์ x86 เท่านั้น
B. Clay Shannon

ภายใต้ C: \ Program Files (x86) \ Java \ jdk1.7.0_25 \ jre \ bin ฉันไม่มีไดเรกทอรีไคลเอนต์จะมีอยู่ภายใต้ C: \ Program Files (x86) \ Java \ jre7 \ bin ฉันควรทำอย่างไรดี?
Pavol Havlik

ใน windows 7 หลังจากค้นหาคำสำคัญ "1.8.0_74" ฉันพบหลายรีจิสทรีโดยใช้ regedit ใน HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / หรือ ../1.8.0_65 และติดตั้งอื่น ๆ ทั้งหมดก่อนหน้านี้ ... หลังจากลบหนึ่งรีจิสตรีจากล่างสู่จาวาที่ติดตั้งล่าสุดของฉัน 1.8.0_112 ตอนนี้ YourKit java profiler (profiler.exe) ทำงานโดยไม่มีข้อผิดพลาด: "เกิดข้อผิดพลาดขณะเริ่ม C: \ Program Files \ Java \ jdk1.8.0_74 \ bin \ javaw.exe "
David

7

นี่คือวิธีการแก้ปัญหาอย่างเป็นทางการสำหรับการตั้งค่าสภาพแวดล้อม Java จาก www.java.com - ที่นี่

มีวิธีแก้ปัญหาสำหรับ Windows 7, Windows Vista, Windows XP, Linux / Solaris และเชลล์อื่น ๆ


ตัวอย่าง

วินโดว 7

  1. เลือกคอมพิวเตอร์จากเมนูเริ่ม
  2. เลือกคุณสมบัติของระบบจากเมนูบริบท
  3. คลิกการตั้งค่าระบบขั้นสูง -> แท็บขั้นสูง
  4. คลิกที่ตัวแปรสภาพแวดล้อมภายใต้ตัวแปรของระบบค้นหาเส้นทางและคลิกที่มัน
  5. ในหน้าต่างแก้ไขให้ปรับเปลี่ยน PATH โดยเพิ่มตำแหน่งของคลาสให้กับค่าสำหรับ PATH หากคุณไม่มีรายการ PATH คุณสามารถเลือกที่จะเพิ่มตัวแปรใหม่และเพิ่ม PATH เป็นชื่อและที่ตั้งของคลาสเป็นค่า
  6. เปิดหน้าต่างพรอมต์คำสั่งอีกครั้งและเรียกใช้รหัส Java ของคุณ

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

คำแนะนำเหล่านี้ไม่ได้ตั้งค่า JAVA_HOME ซึ่งเป็นตัวแปรแยกต่างหากอย่างสิ้นเชิงจาก PATH ที่จำเป็นสำหรับบางโปรแกรม
จูลส์มี

6

วินโดว 7

  1. ไปที่แผงควบคุม \ บัญชีรายการทั้งหมด \ แผงควบคุม \ใช้ Explorer (ไม่ใช่ Internet Explorer!)

    หรือ

    • คลิกที่ปุ่มเริ่ม

      เริ่มต้น

    • คลิกที่ภาพของคุณ

      clickOnPhoto

  2. เปลี่ยนตัวแปรสภาพแวดล้อมของฉัน

    เปลี่ยนตัวแปรสภาพแวดล้อมของฉัน

  3. ใหม่...

    ใหม่

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

  4. เพิ่มJAVA_HOMEเป็นชื่อตัวแปรและตำแหน่ง JDK เป็นค่าตัวแปร> ตกลง

    แก้ไขตัวแปรระบบได้

ทดสอบ:

  • เปิดคอนโซลใหม่ (cmd)
  • ชนิด set JAVA_HOME
    • ผลลัพธ์ที่คาดหวัง: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

6

เราจำเป็นต้องสร้างความแตกต่างระหว่างตัวแปรสภาพแวดล้อมทั้งสองที่กล่าวถึงที่นี่สลับกันได้ หนึ่งคือตัวแปร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


5

goto Mycomputer (พีซีนี้) -> rightclick -> เลือกคุณสมบัติ -> การตั้งค่าระบบขั้นสูง -> ตัวแปรสภาพแวดล้อม -> ในตัวแปรระบบคลิกที่ปุ่ม " ใหม่ " และเขียนJAVA_HOMEในชื่อตัวแปรและเส้นทาง C: \ Program Files \ Java \ jdk1 8.0_131 ถูก jdk มีอยู่ในค่าตัวแปร -> คลิกตกลง

ปิดและเปิดพรอมต์คำสั่งอีกครั้งหลังจากตั้งค่า JAVA_HOME บางครั้งการเปลี่ยนแปลงจะไม่สะท้อนใน cmd ที่เปิดก่อนการตั้งค่า JAVA_HOME

คุณสามารถตั้งค่า JAVA_HOME ผ่านเทอร์มินัลเองได้: SET JAVA_HOME = "C: \ Program Files (x86) \ Java \ jdk1.8.0_131"


4

ใน Eclipse: Window->Preferences->Java->Installed JREs

ใช้คุณสมบัติการค้นหาเพื่อให้แน่ใจว่าการติดตั้ง Java ล่าสุดของคุณอยู่ในรายการ จากนั้นตรวจสอบให้แน่ใจว่าเป็นสิ่งที่ถูกเลือก นี่ควรเป็น JDK ไม่ใช่ JRE


คำแนะนำเหล่านี้ไม่ได้ตั้งค่า JAVA_HOME ซึ่งไม่เกี่ยวข้องกับ eclipse
Jules

4

ในขณะที่เพิ่มไดเรกทอรี Java ของคุณในPATHตัวแปรของคุณคุณอาจต้องการวางไว้ที่จุดเริ่มต้นของมัน ฉันมีปัญหาที่วางไดเรกทอรี Java ในตอนท้ายของPATHจะไม่ทำงาน หลังจากตรวจสอบฉันพบjava.exeในWindows\System32ไดเรกทอรีของฉันและดูเหมือนว่าหนึ่งชนะเมื่อมีหลายไฟล์ที่มีชื่อเดียวกันในPATH...


เมื่อ / ถ้าคุณติดตั้ง Java ด้วยตัวติดตั้งมันจะแทนที่สำเนาของjava.exeและjavaw.exeในโฟลเดอร์ระบบด้วยสำเนาจาก JRE / JDK ดังนั้นจึงควรทำงานต่อไป หากคุณติดตั้งด้วยตนเอง (เพียงแกะที่เก็บถาวร) จากนั้นคุณจะต้องระวังว่าสำเนาใดที่ถูกเรียกใช้
Synetech

คำแนะนำเหล่านี้ไม่ได้ตั้งค่า JAVA_HOME ซึ่งเป็นตัวแปรแยกต่างหากอย่างสิ้นเชิงจาก PATH ที่จำเป็นสำหรับบางโปรแกรม
Jules

3

รันEclipseในฐานะผู้ดูแลระบบ

นั่นช่วยแก้ไขปัญหาของฉัน ฉันยังคงขุดหาเหตุผลที่อยู่เบื้องหลัง


1
ฉันไม่สามารถพูดได้ว่าฉันเข้าใจอย่างถ่องแท้ แต่บางทีคราสอาจจะให้ข้อความผิดพลาดที่นี่ เมื่อคุณเรียกใช้ในฐานะที่ไม่ใช่ผู้ดูแลระบบจะไม่สามารถลบไฟล์. jar หรือสิ่งอื่นใดแล้วรายงานว่าเท็จไม่พบ javac อย่างไรก็ตามโซลูชันนี้ก็ใช้ได้สำหรับฉันเช่นกัน
Jess

หากคุณใช้งาน Eclipse ใน windows server 2012 R2 เช่นเดียวกับในกรณีของฉันการรัน eclipse ในฐานะผู้ดูแลระบบเหมาะสำหรับฉัน อย่าลืมตั้งค่า java_home เป็นโฟลเดอร์ไฟล์โปรแกรมไม่ใช่โฟลเดอร์ไฟล์โปรแกรม (86) หวังว่าอันนี้จะช่วยได้บ้าง
ombiro

2

หากคุณยังไม่ได้รีสตาร์ทคอมพิวเตอร์หลังจากติดตั้ง jdk เพียงรีสตาร์ทคอมพิวเตอร์ของคุณ

หากคุณต้องการสร้างจาวาแบบพกพาและกำหนดเส้นทางก่อนที่จะใช้จาวาเพียงสร้างไฟล์แบตช์ที่ฉันอธิบายไว้ด้านล่าง

หากคุณต้องการเรียกใช้ไฟล์แบตช์นี้เมื่อคอมพิวเตอร์เริ่มทำงานให้ใส่ทางลัดไฟล์แบทช์ในโฟลเดอร์เริ่มต้น ในโฟลเดอร์เริ่มต้นของ windows 7 คือ "Menu \ Programs \ Startup C: \ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start C"

ทำไฟล์แบทช์เช่นนี้:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

หมายเหตุ: java_homeและpathเป็นตัวแปร คุณสามารถสร้างตัวแปรตามที่คุณต้องการ ตัวอย่างเช่นset amir=good_boyและคุณสามารถเห็นอาเมียร์โดย%amir%หรือคุณสามารถดู java_home โดย%java_home%


0

หลังจากชั่วโมงของการแก้ปัญหาส่วนใหญ่ที่นี่ปัญหาได้รับการแก้ไขสำหรับฉันโดยการติดตั้ง JDK 32 บิต


1
ซึ่งเป็นสิ่งที่ดีถ้านั่นคือสิ่งที่คุณต้องการ แต่บางคนไม่ต้องการติดตั้ง Java จริง ๆ และเพิ่งตั้งค่าสภาพแวดล้อม "แบบพกพา" ด้วยตนเองในกรณีนี้คุณต้องรู้ว่าต้องตั้งค่าตัวแปรสภาพแวดล้อมแบบใด
Synetech

0

คุณอาจต้องการดูในโฟลเดอร์ Windows / System32 สำหรับไฟล์ต่อไปนี้: - java.exe - javaw.exe - javaws.exe

เนื่องจากตัวแปรพา ธ รวมไฟล์เหล่านี้คุณสามารถปวดหัวพยายามคิดว่าเหตุใด java -version หรือ javac -version ยังคงชี้ไปที่ JAVA_HOME เก่า: เปลี่ยนชื่อไฟล์เหล่านั้นยกส่วนขยายด้วยขีดล่างเป็นต้น จากนั้นคุณจะต้องสร้างตัวแปร JAVA_HOME เพิ่มลงในตัวแปรพา ธ (เช่น% JAVA_HOME%) และต่อท้ายอนุภาค "\ bin" วิธีนี้คุณต้องเปลี่ยนเฉพาะตัวแปร JAVA_HOME ที่ชี้ไปที่ JRE หรือ JDK ที่แตกต่างกันและมีการติดตั้ง java หลายรายการเพียงแค่ตั้งค่า JAVA_HOME

นี่หมายความว่าจะเป็นการดีกว่าที่จะติดตั้ง Java ด้วยตนเองโดยไม่ต้องติดตั้งดังนั้นคุณจึงสามารถเล่นกับมันได้

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