Eclipse - ไม่มี Java (JRE) / (JDK) …ไม่มีเครื่องเสมือน


278

ฉันพยายามรับ Eclipse v3.5 (กาลิเลโอ) เพื่อเรียกใช้บนคอมพิวเตอร์ของฉันอีกครั้ง - ฉันได้เรียกใช้มาก่อนโดยไม่มีปัญหา แต่ตอนนี้ฉันได้รับข้อผิดพลาดนี้:

Java Runtime Environment (JRE) หรือ Java Development kit (JDK) ต้องพร้อมใช้งานเพื่อรัน Eclipse ไม่พบเครื่องเสมือน Java หลังจากค้นหาตำแหน่งต่อไปนี้: C: \ eclipse \ jre \ javaw.exe javaw.exe ใน PATH ปัจจุบันของคุณ

ฉันเพิ่งติดตั้งใหม่ทั้ง JDK และ SDK

ฉันมี Windows 7 (x64)

เกิดอะไรขึ้นกับสิ่งนี้? ฉันจะแก้ไขได้อย่างไร

ฉันไม่สามารถเรียกใช้ ipconfig / tracert / หรือ ping ใด ๆ


3
Java Runtime Environmentไม่ใช่ JRE SDK ...
85421

1
ติดตั้ง JRE - นี่จะให้ javaw.exe ในเส้นทางของคุณ JDK ไม่ได้
Thorbjørn Ravn Andersen

12
@Carlos แต่ละ JDK นำ JRE ส่วนตัว
Thorbjørn Ravn Andersen

3
@ Thorbjørn: แล้วประเด็นคืออะไร? ฉันรู้และ JDK ก็นำJRE สู่สาธารณะเช่นกัน ฉันเขียนว่า "Java Runtime Environment ไม่ใช่ SDK" แต่คุณต้องอ่านโพสต์ดั้งเดิม (ก่อนที่จะถูกแก้ไขในวันที่ 11 มกราคม) เพื่อทำความเข้าใจว่าทำไมฉันถึงเขียน: "A java Runtime Environment ( SDK ) หรือ ... "
user85421

11
หากคุณเพิ่งติดตั้ง JDK ในเส้นทางอื่นหลังจากที่คุณติดตั้ง Eclipse แล้วคุณอาจประสบปัญหานี้ นี่เป็นเพราะรหัสฮาร์ดคราสเส้นทาง JDK ใน eclipse.ini เมื่อมีการตั้งค่าเป็นครั้งแรก เพียงแค่เปลี่ยนเส้นทาง JDK ที่ถูกต้องใน eclipse.ini ที่ควรแก้ไขข้อผิดพลาดนี้
Rajaraman

คำตอบ:


221

Eclipse จะพยายามเริ่มต้นด้วยค่าเริ่มต้น " java.exe" (อันแรกที่คุณอ้างอิงPATH)

สามสิ่งที่ควรจดจำ:

  • "การติดตั้ง" JRE หรือ JDKสามารถทำได้ง่ายเพียงแค่คลายซิปหรือคัดลอกจากคอมพิวเตอร์เครื่องอื่น: ไม่มีขั้นตอนการติดตั้งพิเศษและคุณสามารถมีรุ่น JVM ได้หลายรุ่น (1.4, 5.0, 6.0 ... ) ตามที่คุณต้องการ , "ติดตั้ง" (คัดลอก) เกือบทุกที่บนดิสก์ของคุณ
  • ฉันขอแนะนำให้เรียกใช้ Eclipse ด้วยJRE ล่าสุดที่เป็นไปได้ (เพื่อรับประโยชน์จากการพัฒนาฮอตสปอตล่าสุด ) คุณสามารถ:
  • JVM ที่คุณจะอ้างอิงภายในเซสชัน Eclipse ของคุณอาจไม่ได้ใช้ในการเรียกใช้ Eclipse เพราะ:
    • คุณเพียงต้องการ JRE เพื่อเปิดใช้ Eclipse แต่เมื่อเปิดใช้ Eclipse คุณควรลงทะเบียน JDK สำหรับโครงการของคุณ (โดยเฉพาะอย่างยิ่งสำหรับแหล่ง Java และวัตถุประสงค์ในการดีบั๊กในทางทฤษฎีสำหรับการรวบรวม แต่ Eclipse มีคอมไพเลอร์ Java ของตัวเอง) หมายเหตุ: JRE ภายใน Eclipse เพราะมันเพียงพอที่จะรันโปรแกรมของคุณ แต่ JDK อีกครั้งจะอนุญาตให้มีการดำเนินการเพิ่มเติม
    • แม้ว่า Java ที่ลงทะเบียนแล้วเป็นค่าเริ่มต้นใน Eclipse จะเป็นเซสชั่นที่ใช้ในการเรียกใช้เซสชั่น แต่คุณสามารถต้องการลงทะเบียน SDK ที่เก่ากว่า (รวมถึงที่ไม่ใช่ซัน) เพื่อเรียกใช้ / ดีบักโปรแกรมของคุณด้วย JRE คล้ายกับ ใช้จริงในการผลิต

Installed JREs


มิถุนายน 2012, jmbertucciความคิดเห็น:

ฉันใช้ Windows 7 64- บิตและติดตั้ง JRE 32- บิต ฉันดาวน์โหลด Eclipse 64 บิตซึ่งค้นหา JRE 64 บิต เพราะฉันไม่มี JRE 64 บิตมันโยนความผิดพลาดซึ่งสมเหตุสมผล

ฉันไปที่หน้าการติดตั้งด้วยตนเองของ Java (ซึ่งไม่สามารถเข้าถึงได้โดยตรงเท่าที่คุณต้องการ) และติดตั้งเวอร์ชัน 64 บิต โปรดดู "การดาวน์โหลด Java สำหรับระบบปฏิบัติการทั้งหมด " นั่นคือทั้งหมดที่ฉันต้องการ


เมษายน 2016: Steve Mayneเพิ่มความคิดเห็น :

ผมต้องแก้ไขeclipse.iniไฟล์เพื่ออ้างอิงเส้นทาง Java ที่ถูกต้อง - คราสไม่ได้ใช้สภาพแวดล้อมที่ทุกคนเมื่อมีค่าในPATHeclipse.ini


42
คำถาม / คำตอบนี้เก่าเล็กน้อย แต่ฉันพบปัญหานี้ดังนั้นฉันจะโพสต์บันทึกย่อของฉัน ฉันใช้ Win7 64 บิตและติดตั้ง JRE 32 บิตแล้ว ฉันดาวน์โหลด Eclipse 64 บิตซึ่งค้นหา JRE 64 บิต เพราะฉันไม่มี JRE 64 บิตมันโยนข้อผิดพลาดซึ่งสมเหตุสมผล ฉันไปที่หน้าการติดตั้งด้วยตนเองของ Java (ซึ่งไม่สามารถเข้าถึงได้โดยตรงเท่าที่คุณต้องการ) และติดตั้งรุ่น 64 บิต java.com/th/download/manual.jsp นั่นคือทั้งหมดที่ฉันต้องการ
jmbertucci

2
@Nuktu: ฉันได้เพิ่มความคิดเห็นของ jmbertucci ในคำตอบ
VonC

@ jmbertucci: ขอบคุณสำหรับบันทึกของคุณ ฉันได้เพิ่มพวกมันไว้ในคำตอบเพื่อให้มองเห็นได้ชัดเจนขึ้น
VonC

2
@VonC ฉันต้องแก้ไขไฟล์ eclipse.ini เพื่ออ้างอิงเส้นทาง java ที่ถูกต้อง - Eclipse ไม่ได้ใช้ PATH สภาพแวดล้อมเลยเมื่อมีค่าใน eclipse.ini
Steve Mayne

1
@SteveMayne น่าสนใจขอบคุณ ฉันได้รวมความคิดเห็นของคุณไว้ในคำตอบเพื่อให้มองเห็นได้ชัดเจนขึ้น
VonC

141

เพียงคัดลอกไฟล์นี้:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

ไปที่โฟลเดอร์ Eclipse

* หมายเหตุทดสอบเฉพาะสำหรับ Windows

Replacing javaw.exe in Eclipse Folder


ฉันกำลังค้นหาวิธีแก้ปัญหาง่ายๆเป็นคำตอบนี้ แต่ก็ไม่ได้ผลสำหรับฉันในกรณีที่บางคนมีสถานการณ์คล้ายกันการเปลี่ยนไดเรกทอรี vm ในไฟล์ eclipse.ini อาจช่วยได้
Noha Kareem

3
ไม่ทำงานสำหรับฉันให้ฉันข้อผิดพลาด: การเปิดรีจิสตรีคีย์ 'Software \ Javasoft \ Java Runtime Environment' ฉันต้องคัดลอกทั้งโฟลเดอร์ jre7 (ในกรณีของฉัน) ลงในไดเรกทอรี Eclipse และเปลี่ยนชื่อเป็น jre จากนั้นก็ใช้งานได้
CuriousMarc

สำหรับบางคนล้มเหลวลองคัดลอกโฟลเดอร์ jre ไปยังโฟลเดอร์ eclipse
Arthur Zhixin Liu

@NohaKareem คำแนะนำของคุณใกล้เคียงที่สุดสำหรับฉัน น่าเสียดายที่โฟลเดอร์ 'jre' ของฉันมีเพียง 'lib' ดังนั้นการคัดลอกผ่านโฟลเดอร์ Java 'jdk' (แม้ว่าจะใหญ่กว่า 350MB แต่มีโฟลเดอร์ 'bin' ภายใน) และเปลี่ยนชื่อเป็น 'jre' ขอบคุณ
ทีม Mindsect

การติดตั้ง Java ทั้ง 32 และ 64 บิต แต่ Java 32 บิตในพา ธ การพยายามเปิด 64 บิต eclipse จะล้มเหลวโดยวางไฟล์ 64 บิต javaw ถัดจาก exclipse ทำให้สามารถใช้งานได้
DiamondDrake

83

ทุกคำตอบอื่น ๆ เกี่ยวกับการตั้งเพียงJAVA_HOMEไม่ได้อย่างสิ้นเชิงขวา คราสไม่คือไม่ได้JAVA_HOMEปรึกษา ดูข้อความแสดงข้อผิดพลาด:

... ในเส้นทางปัจจุบันของคุณ

มันพูดอย่างแท้จริงPATHไม่ใช่JAVA_HOMEไม่

คลิกขวาที่คอมพิวเตอร์ของฉันและเลือกคุณสมบัติ (หรือกดWinkey+ Pause) ไปที่แท็บขั้นสูงคลิกที่ปุ่มตัวแปรสภาพแวดล้อมในรายการตัวแปรระบบที่ด้านล่างเลือกPath(ไม่ไม่ใช่ Classpath ) คลิกแก้ไขและเพิ่ม;c:\path\to\jdk\binไปยังจุดสิ้นสุดของค่า

หรืออีกทางหนึ่งและหากไม่ได้ปัจจุบันคุณยังสามารถเพิ่มตัวแปรสภาพแวดล้อมและการใช้ประโยชน์จากมันในJAVA_HOME PATHในบทสนทนาเดียวกันคลิกใหม่และเพิ่มกับค่าของJAVA_HOME c:\path\to\jdkจากนั้นคุณสามารถเพิ่ม;%JAVA_HOME%\binจุดสิ้นสุดของการPathตั้งค่า


2
ไม่ทำงาน :) ข้อมูลของชื่อสภาพแวดล้อม: เส้นทาง --- ค่า: C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
พา ธ ที่มีช่องว่างต้องอยู่ในเครื่องหมายคำพูด
BalusC

เส้นทางของฉันได้รับการกำหนดค่าอย่างสมบูรณ์แบบมาก่อนคอมไพเลอร์ Borland แก้ไขฟิลด์เส้นทางและแทนที่เส้นทาง java ด้วยเส้นทางของตัวเองตอนนี้คงที่มันขอบคุณ !!!
Akhil Jain

1
@BalusC ที่จริงแล้วไม่จำเป็นต้องใส่พา ธ ในเครื่องหมายคำพูดเมื่อกำหนดค่าตัวแปรสภาพแวดล้อมPATHใน Windows เพียงคั่นด้วยเซมิโคลอน ( ;) ก็เพียงพอแล้ว
informatik01

นี่คือคำตอบที่แก้มัน หลังจากผ่านไปสองสามชั่วโมงผู้ที่มีปัญหาเดียวกันสิ่งที่คุณต้องการคือ: 1) ตรวจสอบให้แน่ใจว่าทุกอย่างเป็นแบบ 64 บิต ควรติดตั้งโดยอัตโนมัติใน "ไฟล์โปรแกรม" ไม่ใช่ "ไฟล์โปรแกรม (x86)" 2) เขียน -VM ไปยังโฟลเดอร์ bin ที่คำตอบอื่น ๆ มี 3) กำหนดเส้นทางตามที่ผู้ชายคนนี้พูด จะไม่มีอะไรเกิดขึ้นถ้าคุณไม่สามารถเรียกใช้จาวาจากบรรทัดคำสั่ง 4) ดีใจ
triplebig

36

เปิดคุณสมบัติระบบของ Windows จากแผงควบคุมและค้นหาส่วนตัวแปรสภาพแวดล้อม:

  • เพิ่มรายการ JAVA_HOME ที่ชี้ไปยังไดเรกทอรีที่ติดตั้ง JDK (เช่น C: \ Program Files \ Java \ jre6)
  • ค้นหารายการเส้นทางและเพิ่มสิ่งต่อไปนี้ที่ส่วนท้าย;% JAVA_HOME% \ bin
  • ตกลงการเปลี่ยนแปลง
  • รีสตาร์ท eclipse เพื่อให้ทราบสภาพแวดล้อมใหม่

เครื่องมือ Java ส่วนใหญ่จะสามารถค้นหาการติดตั้ง Java ของคุณได้โดยใช้ตัวแปรสภาพแวดล้อม JAVA_HOME หรือโดยการค้นหา java.exe / javaw.exe ในตัวแปรสภาพแวดล้อม Path


3
เมื่อฉันเพิ่มชื่อ: ค่า JAVA_HOME: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" ฉันยังคงได้รับข้อผิดพลาดเดียวกัน
Wallter

24

หากคุณดาวน์โหลด Eclipse เวอร์ชัน 64 บิต มันจะค้นหา JRE เวอร์ชัน 64 บิต หากคุณดาวน์โหลด Eclipse เวอร์ชัน 32 บิต มันจะมองหา JRE รุ่น 32 บิต

สิ่งที่ฉันทำคือติดตั้ง JRE ทั้งรุ่น 32 และ 64 บิต คุณสามารถรับได้จากเว็บไซต์ SUN Oracle ดูเหมือนว่าไซต์ JAVA จะติดตั้ง Java เวอร์ชัน 32 บิตโดยอัตโนมัติ ฉันเดาว่าเป็นเพราะเว็บเบราว์เซอร์


2
Ladookie กล่าวว่าปัญหาที่น่าเป็นไปได้มากที่สุดคือเบราว์เซอร์ที่ใช้งานโค้ดไม่ดีบนเว็บไซต์ของ Java และรับ JAVA รุ่นผิด ...
Wallter

1
speedbaron อยู่ที่นี่อย่างสมบูรณ์ หากคุณกำลังปรับเปลี่ยนตัวแปรสภาพแวดล้อมของเส้นทางตรวจสอบให้แน่ใจว่าคุณใส่เส้นทางของรุ่นที่ถูกต้อง ระบบ Windows 7 64- บิตของฉันติดตั้ง JRE 32- บิต (ไม่รู้สาเหตุ) ดังนั้นฉันจึงติดตั้งรุ่น 64 บิตและเพิ่มใน PATH ไดเรกทอรีใหม่ ดูเหมือนว่าจะทำงานได้ดีในขณะนี้
musicliftsme

1
นี่เป็นปัญหาของฉัน โปรดทราบว่าการติดตั้ง Windows 64 บิตC:\Program Files\Javaและ 32 C:\Program Files (x86)\Javaบิต
สไตล์

10

มันกลับกลายเป็นว่าสิ่งที่ฉันต้องทำคือเปลี่ยน'เส้นทาง'เป็น:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin "

ที่ทำมัน :)


1
BTW คุณควรใช้ jdk1.6.0_16 หรือใหม่กว่า การใช้ jdk 1.6.0_14 คุณไม่สามารถใช้เบรกพอยต์อย่างถูกต้องใน Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H

9

ฉันมี windows 7 64- บิตและฉันมีปัญหาเดียวกันกับ eclipse เพื่อให้มันทำงานได้ฉันต้องใช้ internet explorer (เวอร์ชัน 64 บิต) เพื่อดาวน์โหลด java นี่เป็นวิธีเดียวที่จะทำให้ java ติดตั้งเวอร์ชัน 64 บิต เมื่อฉันใช้ firefox เพื่อติดตั้ง java มันจะติดตั้งรุ่น 32 บิตโดยอัตโนมัติ (งี่เง่ามาก!) และรุ่น Eclipse 64 บิตจะไม่ตรวจจับเวอร์ชัน java 32 บิต


ผมไม่ได้มีปัญหาอีกต่อไป - แต่ตอนนี้ดูเหมือนว่าทางออกที่ดีและทำให้รู้สึก - มันจะน่าสนใจในการทดสอบนี้กับ 64bit เบราว์เซอร์อื่น ๆ ...
WallTer

7

สรุปคร่าวๆ:

คลิกขวาที่ My Computer คลิก Properties จากนั้นการตั้งค่าระบบขั้นสูงหน้าต่างคุณสมบัติระบบจะป็อปอัพภายใต้แท็บขั้นสูงเลือกตัวแปรสภาพแวดล้อมหน้าต่างตัวแปรสภาวะแวดล้อมจะป๊อปอัปภายใต้ส่วนตัวแปรระบบค้นหาPATHตัวแปรและแก้ไขค่า เปลี่ยนเป็นเวอร์ชั่น jre6, jre7 และอื่น ๆ เป็น jre ที่คุณใช้เช่นของฉัน:C:\Program Files\Java\jre7\bin


7

อย่าพึ่งตัวแปรพา ธ ของ windows เพราะมันได้รับการเปลี่ยนแปลงในเกือบทุกการอัพเดท เช่น chrome (32 บิตบนเครื่อง 64 บิต) การอัปเดต java แทน JVM 64 บิตทั่วทั้งระบบโดย JVM 32 บิต โปรดทราบว่ารายการนี้จะต้องเป็นรายการสุดท้ายใน eclipse.ini มิฉะนั้นจะไม่ทำงานและ - ตามที่ระบุไว้เป็นอย่างอื่น - ตัวแปร JAVA_HOME ไม่ได้รับการประเมินโดย eclipse.exe

แม้ว่าคุณมี JAVA_HOME และการกำหนดค่าเส้นทางที่ถูกต้อง แต่พวกเขาอาจมีปัญหานี้ดังนั้นวิธีที่ง่ายที่สุดในการเปิด eclipse.ini ในโฟลเดอร์ installtion eclipse

-vm

C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

แทนที่ C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe ด้วยเส้นทาง jdk หรือ jre`s ของคุณ


ฉันลงคะแนนให้คำตอบนี้เป็นคำตอบที่ถูกต้อง อย่าพึ่งตัวแปรพา ธ ของ windows เพราะมันได้รับการเปลี่ยนแปลงในเกือบทุกการอัพเดท เช่น chrome (32 บิตบนเครื่อง 64 บิต) การอัปเดต java แทนที่ JVM 64 บิตทั่วทั้งระบบโดย JVM 32 บิต โปรดทราบว่ารายการนี้จะต้องเป็นรายการสุดท้ายใน eclipse.ini มิฉะนั้นจะไม่ทำงาน และ - ตามที่ระบุไว้เป็นอย่างอื่น - ตัวแปร JAVA_HOME ไม่ได้รับการประเมินโดย eclipse.exe โปรดแก้ไขคำตอบของคุณ
Heri

นี่เป็นคำตอบที่ดีที่สุดเนื่องจากจะช่วยแก้ไขปัญหาที่เกิดขึ้นจริงได้โดยตรง Eclipse กำลังค้นหาพา ธ สำหรับพารามิเตอร์เฉพาะและค่านั้นผิด ... ดังนั้นการแก้ไขค่าจะแก้ไขปัญหา
BuvinJ

6

ในeclipse.iniไฟล์ของคุณคุณต้องอัพเดตพา ธ ไปยัง VM เพื่อชี้ไปยังตำแหน่งเดียวกันกับที่javaw.exeติดตั้งไว้ในเครื่องของคุณ


6

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

C: \ Program Files; C: \ Winnt; C: \ Winnt \ System32; C: \ Program Files \ Java \ jre6 \ bin \ javaw.exe

ตอนนี้คัดลอกโฟลเดอร์ "jre" จากเส้นทางของคุณเช่นฉันมี "jre" ภายใต้เส้นทางนี้

            C:\Program Files\Java

และวางลงในโฟลเดอร์ eclipse ของคุณหมายถึงตำแหน่งที่วางไฟล์ eclipse.exe ของคุณ เช่นฉันมีการตั้งค่าคราสในสถานที่นี้

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

ดังนั้นในโฟลเดอร์ eclipse ให้วาง "jre" FOLDER หากคุณมี "jre6" จากนั้นเปลี่ยนชื่อเป็น "jre" .... และเรียกใช้ eclipse ของคุณคุณจะได้ทางออก ...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

โซลูชันอื่น ๆ : 2

หากปัญหาไม่สามารถแก้ไขได้ด้วยขั้นตอนข้างต้นให้ทำตามขั้นตอนเหล่านี้

  1. คัดลอกโฟลเดอร์ "jre" จากเส้นทาง Java ของคุณเช่น C: \ Program Files \ Java \ jre6 * ฯลฯ และวางในไดเรกทอรี eclipse ของคุณ (eclipse ของคุณอยู่ที่ไหน)
  2. ไปที่ไฟล์ eclipse.ini เปิดขึ้น
  3. เปลี่ยนไดเรกทอรีของไฟล์ javaw.exe ของคุณเช่น

-vmF: \ ซอฟต์แวร์ \ การติดตั้งซอฟต์แวร์ภาษา \ Android การตั้งค่า \ eclipse Indigo รุ่น 32 บิต \ jre \ bin / javaw.exe

ตอนนี้เวลาที่คุณจะเริ่ม eclipse มันจะค้นหา javaw.exe ดังนั้นมันจะค้นหาพา ธ ใน eclipse.ini เนื่องจากขณะนี้อยู่ในโฟลเดอร์เดียวกันดังนั้นมันจะเริ่ม javaw.exe และจะเริ่มทำงาน .

หากคุณยังมีข้อสงสัยใด ๆ คุณสามารถถามอีกครั้งเพียงไปที่โปรไฟล์ของฉันและค้นหารหัสอีเมลของฉัน เพราะฉันชอบฟอรั่มสแต็คล้นและมันทำให้ฉันเป็นโปรแกรมเมอร์ *


5

แก้ไขไฟล์ eclipse.ini ของฉันเพื่ออัพเดต JDK ที่อัพเดตใหม่ ก่อนหน้านี้ฉันมี jdk1.7.0_09 และอัปเดตตอนนี้เป็น jdk1.7.0_80 และ eclipse โยนข้อผิดพลาดนี้

Java Runtime Environment (JRE) หรือ Java Development Kit (JDK) ต้องพร้อมใช้งานเพื่อรัน Eclipse ไม่พบเครื่องเสมือน Java หลังจากค้นหาตำแหน่งต่อไปนี้: C: / Program Files / Java / jdk1.7.0_09 / bin / javaw

หลังจากอัปเดตeclipse.iniจาก

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

ถึง

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipse ทำงานได้ดี


1
นี่คือทางออกที่เหมาะกับฉัน - ขอบคุณ Lucky Eclipse โหลด JRE ที่อ้างอิงในไฟล์ ini ดังนั้นคำตอบที่ยอมรับนั้นไม่ถูกต้องในการแนะนำให้ดูที่ env PATH
Steve Mayne


3

ถ้าหลังจากเพิ่ม C: \ Program Files \ Java \ jdk1.8.0_92 \ bin ในตัวแปร PATH ในตัวแปรสภาพแวดล้อม eclipse ให้ข้อผิดพลาดเดียวกัน

ตรวจสอบไฟล์การตั้งค่าการกำหนดค่า eclipse ที่พบในโฟลเดอร์ eclipse คุณต้องดูเส้นทาง jdk เดียวกับที่คุณมีในไฟล์ C: \ program

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

ฉันหวังว่ามันจะช่วย


2

เมื่อฉันมีปัญหาดังกล่าวในกรณีของฉันฉันติดตั้ง x64 JDK + JRE พร้อม x86 Eclipse ดังนั้นการติดตั้งของ x86 JDK + JRE แก้ปัญหาของฉัน :) นอกจากนี้ผมสร้างjreโฟลเดอร์ในโฟลเดอร์คราสและคัดลอกbinโฟลเดอร์จากเส้นทางท้องถิ่นของฉันไปC:\Program Files (x86)\Java\jre7..\eclipse\jre\


2
  • ระบบปฏิบัติการ 64 บิต -> คุณต้องการ: Java 64 บิตและ Eclipse 64 บิต
  • ระบบปฏิบัติการ 32 บิต -> คุณต้องการ: Java รุ่น 32 บิตและ 32 บิต

หากคุณอัปเดตเวอร์ชัน Java ด้วยการอัพเดทเริ่มต้นในคอมพิวเตอร์ 64 บิต (และคุณมีเบราว์เซอร์ 32 บิต ) จาวาจะติดตั้งเวอร์ชัน 32 บิต คุณควรหาจาวาเวอร์ชัน 64 บิตและติดตั้ง


1

ฉันมีเพื่อนร่วมงานที่มีปัญหาตรงนี้เมื่อสัปดาห์ที่แล้ว เขาแก้ไขโดยติดตั้ง Eclipse รุ่น x64 และ x64 JDK

แก้ไข: เขานำพื้นที่ทำงานเก่าของเขากลับมาใช้ใหม่หลังจากติดตั้งปลั๊กอินที่จำเป็นดังนั้นจึงไม่ควรมีปัญหามากนัก


1

มีวิธีที่ง่ายกว่าในการทำเช่นนั้น เพียงแค่เรียกใช้ cmd x64 พิมพ์ cmd x64 เพื่อค้นหาแถบในเมนูเริ่มและคุณจะพบมัน :) หรืออีกวิธีหนึ่งคุณควรกำหนดพา ธ ไปยังไฟล์โปรแกรม (x86) ... ตัวอย่างเช่น C: \ Program Files (x86) \ Java \ jre6


1

เพียงเพิ่มเส้นทาง JRE สำหรับ Ex: C: \ Program Files \ Java \ jre5 \ bin ในตัวแปรสภาพแวดล้อม Put ";" ในระหว่างทุกเส้นทาง จากนั้นคลิก eclipse.exe มันจะทำงาน .....


1

สาเหตุที่คุณได้รับข้อผิดพลาดนี้เนื่องจาก eclipse ต้องการ JRE เพื่อเปิดใช้ซึ่งไม่สามารถหาได้ ตำแหน่งแรกที่ค้นหาคือไดเร็กทอรีปัจจุบันจากนั้นตามด้วยไฟล์ eclipse.ini จากนั้นพา ธ ระบบในที่สุด ดังนั้นหากมันไม่สามารถหา jvm ที่ถูกต้อง (เวอร์ชั่นของบิตแตกต่างกัน) ผ่านสถานที่ทั้งสามนี้มันเป็นเปล

วิธีที่แนะนำคือการแก้ไขไฟล์ eclipse.ini และบอก eclipse ตรงตำแหน่งที่จะค้นหา vm / jre โดยรวมบรรทัดนี้ในไฟล์:

-vm
[เส้นทางไปยัง java.exe ของคุณ] (ซึ่งโดยทั่วไปจะอยู่ภายใต้ "C: \ Program Files \ Java \ jre7 \ bin")

PS หากต้องการแก้ไข eclipse.ini คุณอาจต้องย้ายแก้ไขและวางกลับ

ที่มา: - วิกิ


1

ก่อนอื่นต้องขอขอบคุณ YouYou สำหรับวิธีการแก้ปัญหาของเขา! ฉันลองตอบโดย YouYou ( https://stackoverflow.com/a/14464653/801919 ) ตอนแรกมันไม่ได้ผลสำหรับฉัน ต่อไปนี้เป็นขั้นตอนที่ฉันต้องดำเนินการเพื่อให้ทำงานได้:

  1. เริ่มแรกฉันไม่ได้ติดตั้ง Java บนเครื่องใหม่ของฉัน ดังนั้นฉันต้องติดตั้ง (ดาวน์โหลดจาก: http://java.com/en/download/manual.jsp )
  2. ฉันใช้ระบบปฏิบัติการ 64 บิต แต่ในขณะที่ดาวน์โหลดฉันได้รับข้อความที่สามารถช่วยฉันในการเลือกรุ่นของ Java ที่จะดาวน์โหลด: Choose the 32-bit download to use with a 32-bit browser.ดังนั้นฉันจึงดาวน์โหลดรุ่น 32 บิต
  3. จากนั้นฉันทำตามขั้นตอนที่กล่าวถึงในhttps://stackoverflow.com/a/14464653/801919โดยหวังว่าจะได้รับการแก้ปัญหา
  4. ฉันพบข้อผิดพลาดอื่น ๆ : Java was started but returned exit code=13
  5. จากนั้นฉันติดตั้ง Java เวอร์ชัน 64 บิต
  6. คัดลอกjavaw.exeมาจากเวอร์ชันนั้น

... และ Eclipse เริ่มทำงาน !!! Yaay!


1

คำตอบนี้คือผู้ที่ลองใช้คนอื่น ๆ โดยไม่มีโชคอาจเป็นสตูดิโอ AndroidหรือEclipseฉันมักจะทำสิ่งนี้เมื่อทุกอย่างล้มเหลว

  1. ค้นหาโฟลเดอร์ Android sdk ของคุณและเปิดไฟล์android.batด้วยโปรแกรมแก้ไขข้อความ
  2. คุณจะพบคำสั่งบางอย่างเช่นนี้ในตอนเริ่มต้นของไฟล์

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. เปลี่ยนเป็น

    set java_exe=< พา ธ ไปยังไฟล์ java.exe ของคุณ (สามารถพบได้ในไดเรกทอรี jdk โฟลเดอร์ / bin ของคุณ) >

  2. ค้นหาบรรทัด

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. แทนที่ด้วย set swt_path=< พา ธ ไปยังไฟล์ swt.jar ของคุณตามลำดับสำหรับ x86 อยู่ที่ sdk \ tools \ lib \ x86 และสำหรับ x64 ที่ sdk \ tools \ lib \ x86_64 >
  2. บันทึกและปิดไฟล์และตอนนี้คุณก็พร้อมแล้วที่จะไป ..

1

ลองตั้งค่า JAVA_HOME ของคุณเป็นโฟลเดอร์ที่ถูกต้อง Google สำหรับการตั้งค่าตัวแปรสภาพแวดล้อมใน Windows


ฉันทำตามคำแนะนำเหล่านี้: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.htmlแต่ไม่มีประโยชน์
Wallter

ฉันเกลียดที่จะบอกว่า ... แต่คุณเริ่มใหม่แล้วหรือยัง?
Topher Fangio

การรีสตาร์ทไม่จำเป็นต้องติดตั้ง Java
Thorbjørn Ravn Andersen

1
ไม่จำเป็นต้องมี JAVA_HOME มันเป็นเส้นทางที่ใช้ในการค้นหา javaw.exe (JAVA_HOME ถูกใช้โดยแอปพลิเคชั่นอื่นเช่น ant ดังนั้นจึงไม่ผิดที่ตั้งค่าไว้)
85421

1

ฉันพบปัญหานี้เช่นกัน กรณีของฉันเป็นดังต่อไปนี้:

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

ในข้อความ:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

ฉันพบว่าประเภทของค่ารีจิสทรีPathแตกต่างกันดังนั้นฉันจึงตรวจสอบว่าเส้นทางนั้นถูกต้องหรือไม่โดยคำสั่งต่อไปนี้:

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

เป็นผลให้ฉันรีเซ็ตสภาพแวดล้อมท้องถิ่น (ผู้ใช้ปัจจุบัน) ด้วยคำสั่งต่อไปนี้ ( Setx ):

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

แต่ในกระบวนการปัจจุบันมันไม่สามารถเผยแพร่การเปลี่ยนแปลงเหล่านั้นไปยังกระบวนการทำงานอื่น ๆ

อย่างไรก็ตามหากคุณแก้ไขตัวแปรสภาพแวดล้อมของผู้ใช้โดยตรงใน Registry Editor

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

เมื่อต้องการให้การเปลี่ยนแปลงเหล่านี้เกิดขึ้นโดยไม่ต้องออกจากระบบให้ส่งข้อความ WM_SETTINGCHANGE ไปยังหน้าต่างทั้งหมดในระบบเพื่อให้แอปพลิเคชันที่สนใจ (เช่น Windows Explorer, โปรแกรมจัดการ, ตัวจัดการงาน, แผงควบคุมและอื่น ๆ ) สามารถทำการอัปเดตได้

ดูรายละเอียดได้ที่วิธีเผยแพร่ตัวแปรสภาพแวดล้อมไปยังระบบ

ที่นี่ฉันให้สคริปต์ PowerShell ที่จะทำ:

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment

0

ตรวจสอบหน้าต่าง> การตั้งค่า> Java> JRE ที่ติดตั้งไว้ ตรวจสอบให้แน่ใจว่ามีบางสิ่งที่นั่น หากไม่มีให้เพิ่มหนึ่งรายการ

คุณเพิ่งปรับปรุง JDK ของคุณหรือไม่


ใช่ฉันพยายามเพิ่มแอนดรอยด์ส่วนเสริม แต่ไม่ (เช่น Topher Fangio พูด) ฉันไม่สามารถเริ่ม Eclipse ได้ในขณะนี้
Wallter

0

JDK ไม่ได้ติดตั้ง JVM ในเส้นทางเริ่มต้น

หากคุณไม่ต้องการเครื่องมือภายนอกที่จะทำงานเหมือนมดตัวที่ไม่ใช่ JDK ก็เพียงพอแล้วที่ Eclipse จะทำงาน วิธีที่ง่ายที่สุดในการติดตั้ง JVM เช่นนั้นคือไปที่http://java.comและปล่อยให้มันติดตั้งตามที่ต้องการ

จากนั้นดับเบิลคลิกที่ Eclipse binary อีกครั้ง


ฉันติดตั้งใหม่อีกครั้ง (แม้จะถามว่าฉันต้องการติดตั้งใหม่หรือไม่) โดยไม่มีประโยชน์ (ฉันทำทั้งปลั๊กอิน Google Chrome 14 - หรืออะไรทำนองนั้น && the Firefox)
Wallter

คุณไปที่ java.com เหรอ? ไม่ใช่ javasoft.com?
Thorbjørn Ravn Andersen

0

ตั้งค่าตัวแปร JAVA_HOME และโฆษณา JAVA_HOME / bin เป็นตัวแปรพา ธ ของการพัฒนา


เช่นนี้: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - มันยังใช้งานไม่ได้ :)
Wallter

การอ้างอิง JAVA_HOME ในตัวแปรพา ธ ต้องฝังไว้:% JAVA_HOME% \ bin
Heri

สำหรับฉัน (Windows 10 64 บิต + Eclipse 4.10) เคล็ดลับคือการเพิ่มนอกเหนือจากJAVA_HOMEตัวแปรสภาพแวดล้อมตัวแปรJRE_HOMEซึ่งได้รับการตั้งค่าเป็นที่ตั้งของjavaw.exeตำแหน่ง (ซึ่งอาจเป็นโฟลเดอร์ bin ของ JDK ที่ติดตั้งอยู่เสมอ )
Guy Avraham

0

ฉันมีปัญหาเดียวกัน (Windows 7 x64, 64bit JDK, 32bit Eclipse) และฉันพบวิธีแก้ไข 2 ข้อ:

  • ติดตั้ง Eclipse เวอร์ชัน 64 บิต (พบได้โดยคลิกที่แท็บ "การพัฒนาสร้าง" บนหน้าดาวน์โหลด)
  • ติดตั้ง JDK เวอร์ชั่น 32 บิต

ดู แต่คุณใช้ Windows 7 x86ที่ฉันใช้x64 --- เนื่องจากผู้อื่นระบุว่าปัญหานี้อาจเป็นส่วนหนึ่งของ SUN ในการเขียนโปรแกรมว่าเว็บเพจของพวกเขาตรวจพบเวอร์ชัน (เช่น x64 หรือ x86) คุณได้อย่างไร ควรใช้
Wallter

การแก้ไขฉันใช้ Windows 7 x64
Tim

0

ผมมีปัญหาเหมือนกัน. วิธีที่ง่ายสำหรับฉันในการแก้ไขคือติดตั้งทั้ง JRE และ eclipse เป็น x86 หรือ x64 เมื่อประเภทบิตของพวกเขาไม่ตรงกันคราสไม่สามารถหาได้ ดังนั้นหากไม่ใช่เรื่องใหญ่สำหรับคุณที่จะถอนการติดตั้งและติดตั้งใหม่เพื่อให้ตรงกับที่ฉันจะทำ

ฉันลงเอยด้วยการติดตั้ง: Java Runtime Environment 1.7.0.3 (64- บิต) และ Eclipse Indigo (3.7) (64- บิต)

จากนั้นมันก็ใช้งานได้


0

เมื่อฉันคัดลอกเฉพาะ javaw ข้อผิดพลาดที่สองเกิดขึ้นไม่มีไฟล์ java.dll เมื่อฉันคัดลอกมันเกินไปคราสไม่เริ่มทำงานสิ่งที่ฉันทำก็คือฉันคัดลอกโฟลเดอร์ jdk ทั้งหมดไปยังโฟลเดอร์ eclipse และเปลี่ยนชื่อ id เป็น jre แก้ไขปัญหา.

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