Eclipse - không có Java (JRE) / (JDK) không có máy ảo


278

Tôi đang cố gắng để Eclipse v3.5 (Galileo) chạy lại trên máy tính của mình - Tôi đã chạy nó trước đây mà không gặp vấn đề gì, nhưng bây giờ tôi tiếp tục gặp lỗi này:

Phải có sẵn Bộ công cụ Môi trường Thời gian chạy Java (JRE) hoặc Bộ phát triển Java (JDK) để chạy Eclipse. Không tìm thấy máy ảo Java nào sau khi tìm kiếm các vị trí sau: C: \ eclipse \ jre \ javaw.exe javaw.exe trong PATH hiện tại của bạn

Tôi vừa hoàn thành một bản cài đặt mới của cả JDK và SDK.

Tôi có Windows 7 (x64).

Có chuyện gì thế này? Làm thế nào để tôi sửa chữa nó?

Tôi không thể chạy bất kỳ ipconfig / tracert / hoặc ping.


3
Java Runtime Environmentlà JRE không phải SDK ...
user85421

1
Cài đặt JRE - điều này mang lại cho javaw.exe trong đường dẫn của bạn. JDK không.
Thorbjørn Ravn Andersen

12
@Carlos, mỗi JDK mang đến một JRE riêng.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: và vấn đề là gì? Tôi biết điều đó và cũng là JDK cũng mang đến một JRE công khai . Tôi đã viết rằng "Môi trường chạy thi hành Java không phải là SDK" nhưng bạn phải đọc bài viết gốc (trước khi được chỉnh sửa vào ngày 11 tháng 1) để hiểu lý do tại sao tôi đã viết nó: "Môi trường thời gian chạy java ( SDK ) hoặc ..."
user85421

11
Nếu gần đây bạn đã cài đặt JDK trong một đường dẫn khác sau khi bạn đã cài đặt Eclipse thì bạn có thể phải đối mặt với vấn đề này. Điều này là do nhật thực cứng mã hóa đường dẫn JDK trong eclipse.ini khi nó được thiết lập lần đầu tiên. Chỉ cần thay đổi đường dẫn JDK chính xác trong eclipse.ini. Điều đó sẽ giải quyết lỗi này.
Rajaraman

Câu trả lời:


221

Theo mặc định, Eclipse sẽ cố gắng khởi chạy với "" mặc định java.exe(cái đầu tiên được tham chiếu bởi của bạn PATH)

Ba điều cần nhớ:

  • "Cài đặt" JRE hoặc JDK có thể đơn giản như giải nén hoặc sao chép nó từ một máy tính khác: không có các bước cài đặt đặc biệt và bạn có thể có nhiều phiên bản JVM khác nhau (1.4, 5.0, 6.0 ...) như bạn muốn , "đã cài đặt" (sao chép) hầu hết mọi nơi trên đĩa của bạn.
  • Tôi khuyên bạn nên luôn chạy Eclipse với JRE mới nhất có thể (để hưởng lợi từ các phát triển điểm nóng mới nhất ). Bạn có thể:
  • JVM mà bạn sẽ tham chiếu trong phiên Eclipse của bạn không phải lúc nào cũng được sử dụng để khởi chạy Eclipse bởi vì:
    • Bạn chỉ cần JRE để khởi chạy Eclipse, nhưng một khi Eclipse đã khởi chạy, bạn nên đăng ký JDK cho các dự án của mình (đặc biệt là cho các nguồn Java và mục đích gỡ lỗi, về lý thuyết để biên dịch nhưng Eclipse có trình biên dịch Java riêng) Lưu ý: Bạn có thể đăng ký một JRE trong Eclipse vì nó đủ để chạy chương trình của bạn, nhưng một lần nữa JDK sẽ cho phép nhiều hoạt động hơn.
    • Mặc dù Java đã đăng ký mặc định trong Eclipse là phiên bản được sử dụng để khởi chạy phiên, bạn có thể muốn đăng ký SDK cũ hơn (bao gồm cả không phải Sun) để chạy / gỡ lỗi các chương trình của bạn với JRE tương tự như chương trình JRE thực sự được sử dụng trong sản xuất.

JRE đã cài đặt


Tháng 6 năm 2012, jmbertucci bình luận:

Tôi đang chạy Windows 7 64 bit và tôi đã cài đặt JRE 32 bit. Tôi đã tải xuống Eclipse 64 bit, tìm kiếm JRE 64 bit. Bởi vì tôi không có JRE 64 bit, nó đã gây ra lỗi, điều này có ý nghĩa.

Tôi đã đi đến trang cài đặt thủ công Java (không thể truy cập trực tiếp như bạn muốn) và cài đặt phiên bản 64 bit. Xem " Tải xuống Java cho tất cả các hệ điều hành ". Đó là tất cả những gì tôi cần.


Tháng 4 năm 2016: Steve Mayne thêm vào trong các bình luận :

Tôi đã phải chỉnh sửa eclipse.initệp để tham chiếu đường dẫn Java chính xác - Eclipse hoàn toàn không sử dụng môi trường PATHkhi có giá trị eclipse.ini.


42
Câu hỏi / câu trả lời này hơi cũ nhưng tôi đã gặp phải vấn đề này nên tôi sẽ đăng ghi chú của mình. Tôi đang chạy Win7 64 bit và tôi đã cài đặt JRE 32 bit. Tôi đã tải xuống Eclipse 64 bit, tìm kiếm JRE 64 bit. Bởi vì tôi không có JRE 64 bit, nó đã gây ra lỗi, điều này có ý nghĩa. Tôi đã đi đến trang cài đặt thủ công Java (không thể truy cập trực tiếp như bạn muốn) và cài đặt phiên bản 64 bit. java.com/en/doad/manual.jsp Đó là tất cả những gì tôi cần.
jmbertucci

2
@Nuktu: Tôi đã thêm nhận xét của jmbertucci vào câu trả lời
VonC

@jmbertucci: cảm ơn bạn đã ghi chú của bạn. Tôi đã thêm chúng vào câu trả lời để dễ nhìn hơn.
VonC

2
@VonC Tôi đã phải chỉnh sửa tệp eclipse.ini để tham chiếu đường dẫn java chính xác - Eclipse hoàn toàn không sử dụng môi trường PATH khi có một giá trị trong eclipse.ini
Steve Mayne

1
@SteveMayne Thú vị, cảm ơn bạn. Tôi đã bao gồm nhận xét của bạn trong câu trả lời để dễ nhìn hơn.
VonC

141

Chỉ cần sao chép tập tin này:

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

vào thư mục Eclipse

* lưu ý chỉ được thử nghiệm cho Windows

Thay thế javaw.exe trong Thư mục Eclipse


Tôi đã tìm kiếm một giải pháp đơn giản như câu trả lời này nhưng nó không hiệu quả với tôi, trong trường hợp ai đó có tình huống tương tự, việc thay đổi thư mục vm trong tệp eclipse.ini có thể giúp ích .
Noha Kareem

3
Không làm việc cho tôi, đã cho tôi Lỗi: mở khóa sổ đăng ký 'Phần mềm \ Javasoft \ Môi trường chạy thi hành Java'. Tôi đã phải sao chép toàn bộ thư mục jre7 (trong trường hợp của tôi) vào thư mục Eclipse và đổi tên nó thành jre. Sau đó, nó làm việc.
CuriousMarc 6/11/2016

Đối với ai đó không thành công, hãy thử sao chép thư mục jre vào thư mục nhật thực.
Arthur Zhixin Liu

@NohaKareem lời khuyên của bạn là gần nhất với tôi. Thật không may, thư mục 'jre' của tôi chỉ chứa 'lib', do đó, sao chép qua thư mục 'jdk' của Java (mặc dù lớn hơn với 350 MB, nhưng có thư mục 'bin' bên trong) và đổi tên nó thành 'jre'. Cảm ơn.
Đội ngũ Mindsect

Có cả java 32 và 64 bit được cài đặt nhưng java 32 bit trong đường dẫn, cố gắng mở nhật thực 64 bit sẽ thất bại, đặt tệp javaw 64 bit bên cạnh exclipse làm cho nó hoạt động.
DiamondDrake

83

Tất cả các câu trả lời khác về việc thiết chỉJAVA_HOMEkhông hoàn toàn đúng. Eclipse không cụ thể là không tham khảo ý kiếnJAVA_HOME . Nhìn kỹ hơn vào thông báo lỗi:

... trong PATH hiện tại của bạn

Nó thực sự nói PATH, không phải JAVA_HOME.

Nhấp chuột phải vào Máy tính của tôi và chọn Thuộc tính (hoặc nhấn Winkey+ Pause), chuyển đến tab Nâng cao , nhấp vào nút Biến môi trường , trong danh sách Biến hệ thống ở dưới cùng chọn Path(không, không Classpath ), nhấp vào Chỉnh sửa và thêm ;c:\path\to\jdk\binvào cuối giá trị.

Ngoài ra và nếu không có mặt, bạn cũng có thể thêm JAVA_HOMEbiến môi trường và sử dụng nó trong PATH. Trong cùng một cuộc hội thoại, nhấp vào Mới và thêm JAVA_HOMEvới giá trị của c:\path\to\jdk. Sau đó, bạn có thể thêm ;%JAVA_HOME%\binvào cuối giá trị của Pathcài đặt.


2
Nó không hoạt động :) dữ liệu của tên môi trường: Đường dẫn --- value: C: \ Program Files (x86) \ Java; C: \ Tệp chương trình (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Các đường dẫn có khoảng trắng cần được đặt trong dấu ngoặc kép.
BalusC

đường dẫn của tôi đã được cấu hình hoàn hảo trước đó, trình biên dịch Borland đã chỉnh sửa trường đường dẫn và thay thế đường dẫn java bằng đường dẫn của chính nó, bây giờ là Cố định, thnks !!!
Akhil Jain

1
@BalusC Trên thực tế, không cần phải đặt các đường dẫn trong dấu ngoặc kép khi định cấu hình các biến môi trường PATH trên Windows. Chỉ cần phân định chúng bằng dấu chấm phẩy ( ;) là đủ.
informatik01

đây là câu trả lời giải quyết nó sau vài giờ tìm hiểu kỹ, với những người có cùng vấn đề, điều bạn cần là: 1) đảm bảo mọi thứ đều là 64 bit. Nên tự động cài đặt trong "tệp chương trình", KHÔNG "tệp chương trình (x86)". 2) Viết -VM vào thư mục bin mà các câu trả lời khác có. 3) Đặt đường dẫn như anh chàng này nói. Sẽ không có gì xảy ra nếu bạn không thể chạy java từ dòng lệnh. 4) vui mừng
triplebig

36

Mở Thuộc tính hệ thống của Windows từ bảng điều khiển và tìm kiếm phần biến môi trường:

  • Thêm một mục JAVA_HOME trỏ vào thư mục nơi JDK được cài đặt (ví dụ: C: \ Program Files \ Java \ jre6)
  • Tìm mục Đường dẫn và thêm phần sau vào cuối;% JAVA_HOME% \ bin
  • OK những thay đổi
  • Khởi động lại nhật thực để nó nhận thức được môi trường mới

Hầu hết các công cụ Java bây giờ sẽ có thể tìm thấy bản cài đặt Java của bạn bằng cách sử dụng biến môi trường JAVA_HOME hoặc bằng cách tìm java.exe / javaw.exe trong biến môi trường Đường dẫn.


3
Khi tôi thêm tên: JAVA_HOME value: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Tôi vẫn gặp lỗi tương tự
Wallter

24

Nếu bạn tải xuống phiên bản 64 bit của Eclipse; nó sẽ tìm phiên bản 64 bit của JRE. Nếu bạn tải xuống phiên bản 32 bit của Eclipse; nó sẽ tìm phiên bản 32 bit của JRE

Những gì tôi đã làm là cài đặt cả phiên bản JRE 32 và 64 bit. Bạn có thể lấy nó từ trang web của Oracle Oracle. Trang web JAVA dường như tự động cài đặt phiên bản Java 32 bit. Tôi đoán đó là vì trình duyệt web.


2
Như ladookie đã nói vấn đề rất có thể là trình duyệt chạy mã xấu trên trang web của Java và nhận được phiên bản sai của JAVA ...
Wallter

1
speedbaron là hoàn toàn ngay tại đây. Nếu bạn đang sửa đổi biến môi trường PATH của mình, hãy đảm bảo bạn đặt đường dẫn của phiên bản chính xác. Hệ thống Windows 7 64 bit của tôi đã cài đặt JRE 32 bit (không biết tại sao), vì vậy tôi đã cài đặt phiên bản 64 bit và thêm vào PATH thư mục mới. Nó dường như làm việc tốt bây giờ.
nhạcliftsme

1
Đây là vấn đề của tôi. Lưu ý rằng windows cài đặt 64 bit đến C:\Program Files\Javavà 32 bit đến C:\Program Files (x86)\Java.
styfle

10

Hóa ra tất cả những gì tôi cần làm là thay đổi 'đường dẫn' thành:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Chương trình tệp (x86) \ Java; C: \ Chương trình tệp (x86) \ Java \ jdk1.6.0_14 \ bin "

đã làm điều đó :)


1
BTW, bạn nên sử dụng jdk1.6.0_16 trở lên. Sử dụng jdk 1.6.0_14 bạn không thể sử dụng một cách chính xác breakpoint trong Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H

9

Tôi có windows 7 64-bit và tôi cũng gặp vấn đề tương tự với nhật thực. Để làm cho nó hoạt động, tôi đã phải sử dụng internet explorer (phiên bản 64 bit) để tải xuống java. Đây là cách duy nhất để java cài đặt phiên bản 64 bit. Khi tôi sử dụng firefox để cài đặt java, nó sẽ tự động cài đặt phiên bản 32 bit (thật ngu ngốc!). Và phiên bản 64 bit của Eclipse sẽ không phát hiện phiên bản java 32 bit.


Tôi không còn gặp phải vấn đề này nữa - nhưng đây có vẻ là một giải pháp tốt và có ý nghĩa - sẽ rất thú vị khi thử nghiệm điều này với các trình duyệt 64 bit khác ...
Wallter

7

Giải pháp ngắn gọn:

Nhấp chuột phải vào Máy tính của tôi, nhấp vào thuộc tính, sau đó cài đặt hệ thống nâng cao, cửa sổ Thuộc tính hệ thống sẽ bật lên, dưới tab nâng cao, chọn biến môi trường, cửa sổ Biến môi trường sẽ bật lên, trong phần Biến hệ thống, tìm PATHbiến và chỉnh sửa giá trị , thay đổi nó (phiên bản; jre6, jre7, v.v.) thành bất cứ thứ gì bạn đang sử dụng, ví dụ như của tôi:C:\Program Files\Java\jre7\bin


7

Không dựa vào biến đường dẫn windows vì nó bị thay đổi trong gần như mọi bản cập nhật. Ví dụ, bản cập nhật java chrome (32 bit trên máy 64 bit) thay thế JVM 64 bit toàn hệ thống bằng JVM 32 bit. Cũng lưu ý rằng mục này phải là mục cuối cùng trong eclipse.ini, nếu không thì nó không hoạt động, và - như đã nói khác - biến JAVA_HOME KHÔNG được đánh giá bởi eclipse.exe.

ngay cả khi JAVA_HOME và Path được cấu hình hợp lệ, chúng có thể có vấn đề này, vì vậy cách đơn giản nhất là mở eclipse.ini trong thư mục cài đặt nhật thực của bạn

-vm

C: \ Tệp chương trình \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

thay thế C: \ Chương trình tập tin \ Java \ jdk1.7.0_71 \ bin \ javaw.exe bằng đường dẫn jdk hoặc jre `s của bạn


Tôi bỏ phiếu cho câu trả lời này là đúng. Không dựa vào biến đường dẫn windows vì nó bị thay đổi trong gần như mọi bản cập nhật. Ví dụ, bản cập nhật java chrome (32 bit trên máy 64 bit) thay thế JVM 64 bit toàn hệ thống bằng JVM 32 bit. Cũng lưu ý rằng mục này phải là mục cuối cùng trong eclipse.ini, nếu không nó không hoạt động. Và - như đã nói khác - biến JAVA_HOME KHÔNG được đánh giá bởi eclipse.exe. Vui lòng chỉnh sửa câu trả lời của bạn cho phù hợp.
Heri

Đây là câu trả lời tốt nhất, vì nó trực tiếp giải quyết vấn đề thực tế. Eclipse đang tìm kiếm một đường dẫn cho một tham số cụ thể và giá trị đó là sai ... vì vậy việc sửa giá trị sẽ khắc phục vấn đề.
BuvinJ

6

Trong eclipse.initệp của bạn , bạn cần cập nhật đường dẫn đến VM để trỏ đến cùng vị trí javaw.exeđược cài đặt trên máy của bạn.


6

Đừng lo lắng tôi cũng đã bị hủy hoại bởi lỗi này và gây tử vong và khi tôi nhận được nó, tôi đã rất thất vọng ngay cả khi tôi đã rời khỏi một chương trình Android, nhưng tôi đã nhận được nó, đơn giản trước hết là sao chép mã này và dán vào biến hệ thống của bạn Theo con đường ...

C: \ Tệp chương trình; C: \ Winnt; C: \ Winnt \ System32; C: \ Tệp chương trình \ Java \ jre6 \ bin \ javaw.exe

Bây giờ sao chép thư mục "jre" từ đường dẫn của bạn như tôi có "jre" trong đường dẫn này

            C:\Program Files\Java

và dán nó vào thư mục nhật thực của bạn nghĩa là nơi đặt tệp eclipse.exe của bạn. như thể tôi có nhật thực được thiết lập ở vị trí này

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

Vì vậy, bên trong Thư mục nhật thực dán FILEER "jre". Nếu bạn có "jre6" thì đổi tên thành "jre" .... và chạy nhật thực của bạn, bạn sẽ có giải pháp ...

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

GIẢI PHÁP KHÁC: 2

Nếu vấn đề không thể giải quyết với các bước trên, thì hãy làm theo các bước sau

  1. Sao chép thư mục "jre" từ đường dẫn Java của bạn như C: \ Program Files \ Java \ jre6 * vv và dán nó vào thư mục nhật thực của bạn (Nhật thực của bạn có sẵn ở đâu)
  2. Đi đến tập tin eclipse.ini, mở nó lên.
  3. Thay đổi thư mục của tệp javaw.exe của bạn như

-vmF: \ Phần mềm \ LANGUAGES SOFTEARE \ Cài đặt Android \ nhật thực Indigo phiên bản 32 Bit \ jre \ bin / javaw.exe

Bây giờ, khi bạn bắt đầu nhật thực, nó sẽ tìm kiếm javaw.exe, vì vậy nó sẽ tìm kiếm đường dẫn trong eclipse.ini, vì bây giờ nó nằm trong cùng một thư mục, vì vậy nó sẽ khởi động javaw.exe và nó sẽ bắt đầu hoạt động .

Nếu bạn vẫn có bất kỳ truy vấn nào bạn có thể hỏi lại, chỉ cần vào hồ sơ của tôi và tìm id email của tôi. bởi vì tôi thích diễn đàn stack stack, và nó khiến tôi trở thành một lập trình viên. *


5

Đã chỉnh sửa tệp eclipse.ini của tôi để cập nhật JDK mới được cập nhật. Trước đây tôi đã có jdk1.7.0_09 và cập nhật ngay bây giờ thành jdk1.7.0_80 và nhật thực đã ném lỗi này.

Phải có sẵn Môi trường chạy thi hành Java (JRE) hoặc Bộ phát triển Java (JDK) để chạy Eclipse. Không tìm thấy máy ảo Java sau khi tìm kiếm các vị trí sau: C: / Tệp chương trình / Java / jdk1.7.0_09 / bin / javaw

Sau khi cập nhật eclipse.ini từ,

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

đến

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

Nhật thực hoạt động tốt.


1
Đây là giải pháp hiệu quả với tôi - cảm ơn Lucky. Eclipse tải JRE được tham chiếu trong tệp ini, vì vậy câu trả lời được chấp nhận là không chính xác khi đề xuất nó nhìn vào env PATH.
Steve Mayne


3

nếu sau khi thêm C: \ Program Files \ Java \ jdk1.8.0_92 \ bin trong biến PATH trong các biến môi trường thì nhật thực cho cùng một lỗi

kiểm tra tệp cài đặt cấu hình nhật thực được tìm thấy trong thư mục nhật thực, bạn phải xem cùng đường dẫn jdk bạn có trong C: \ chương trình Tệp

nhập mô tả hình ảnh ở đây

Tôi hy vọng nó sẽ giúp.


2

Khi tôi gặp vấn đề như vậy, trong trường hợp của tôi, tôi đã cài đặt x64 JDK + JRE với x86 Eclipse. Vì vậy, việc cài đặt x86 JDK + JRE đã giải quyết vấn đề của tôi :) Ngoài ra tôi đã tạo jrethư mục trong thư mục nhật thực và binthư mục được sao chép từ đường dẫn cục bộ của mình C:\Program Files (x86)\Java\jre7sang ..\eclipse\jre\.


2
  • HĐH 64 bit -> Bạn cần: Java 64 bit và Eclipse 64 bit
  • HĐH 32 bit -> Bạn cần: Java 32 bit và Eclipse 32 bit

nếu bạn cập nhật phiên bản java của mình với bản cập nhật mặc định trong máy tính 64 bit của bạn (và bạn có trình duyệt 32 bit ), java sẽ cài đặt phiên bản 32 bit. Bạn nên tìm phiên bản java 64 bit và cài đặt nó.


1

Tôi đã có một đồng nghiệp với vấn đề chính xác này tuần trước. Ông đã sửa nó bằng cách cài đặt phiên bản x64 của Eclipse và x64 JDK.

Chỉnh sửa: anh ta đã sử dụng lại không gian làm việc cũ của mình sau khi cài đặt các plugin cần thiết, vì vậy đó không phải là vấn đề lớn


1

Có một cách dễ dàng hơn để làm điều đó. Chỉ cần chạy cmd x64. Nhập cmd x64 vào thanh tìm kiếm trong menu bắt đầu, bạn sẽ tìm thấy nó :) Hoặc cách khác, bạn nên đặt đường dẫn đến tệp chương trình (x86) ... Ví dụ: C: \ Program Files (x86) \ Java \ jre6


1

Chỉ cần thêm JRE PATH FOR Ex: C: \ Program Files \ Java \ jre5 \ bin trong biến môi trường Đặt ";" ở giữa mọi con đường. Sau đó nhấp vào eclipse.exe Nó sẽ hoạt động .....


1

Lý do bạn gặp phải lỗi này là do nhật thực cần JRE để khởi chạy mà nó không thể tìm thấy. Nơi đầu tiên nó tìm kiếm là thư mục hiện tại, sau đó là tệp eclipse.ini và cuối cùng là đường dẫn hệ thống. Vì vậy, nếu nó không thể tìm thấy jvm chính xác (phiên bản bit là khác nhau) thông qua bất kỳ nơi nào trong ba địa điểm này, thì đó là giường cũi

Cách được đề xuất là chỉnh sửa tệp eclipse.ini và báo nhật thực nơi chính xác để tìm vm / jre, bằng cách đưa dòng này vào tệp:

-vm
[đường dẫn đến java.exe của bạn] (thường nằm trong "C: \ Program Files \ Java \ jre7 \ bin")

PS Để chỉnh sửa eclipse.ini, bạn có thể cần phải di chuyển nó, chỉnh sửa và sau đó dán lại

Nguồn: - wiki


1

Trước hết cảm ơn YouYou vì giải pháp của anh ấy! Tôi đã thử trả lời bởi YouYou ( https://stackoverflow.com/a/14464653/801919 ). Ban đầu, nó không làm việc cho tôi. Sau đây là các bước tôi cần thực hiện để làm cho nó hoạt động:

  1. Ban đầu, tôi chưa cài đặt Java trên máy mới. Vì vậy, tôi đã phải cài đặt nó (được tải xuống từ: http://java.com/en/doad/manual.jsp ).
  2. Tôi đang chạy hệ điều hành 64 bit. Nhưng, trong khi tải xuống, tôi nhận được thông báo có thể giúp tôi chọn phiên bản Java nào để tải xuống: Choose the 32-bit download to use with a 32-bit browser.Do đó, tôi đã tải xuống phiên bản 32 bit.
  3. Sau đó, tôi làm theo quy trình được đề cập trong https://stackoverflow.com/a/14464653/801919 , với hy vọng có được giải pháp.
  4. Tôi có một số lỗi khác: Java was started but returned exit code=13
  5. Sau đó, tôi đã cài đặt phiên bản Java 64 bit.
  6. Sao chép javaw.exetừ phiên bản đó.

... Và Eclipse bắt đầu hoạt động !!! Ơ!


1

Vâng, câu trả lời này là dành cho những người đã thử tất cả những người khác mà vẫn không gặp may, đây có thể là studio Android hoặc Eclipsetôi thường làm điều này khi mọi thứ khác đều thất bại.

  1. Tìm thư mục sdk Android của bạn và mở tệp android.bat bằng trình chỉnh sửa văn bản
  2. bạn sẽ tìm thấy một số lệnh như thế này khi bắt đầu tập tin,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Thay đổi chúng thành

    set java_exe=< đường dẫn đến tệp java.exe của bạn (có thể được tìm thấy trong thư mục jdk / thư mục bin của bạn) >

  2. tìm dòng

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. Thay thế nó bằng set swt_path=< đường dẫn đến tệp swt.jar tương ứng của bạn, cho x86, nó có tại sdk \ tools \ lib \ x86 và cho x64 tại sdk \ tools \ lib \ x86_64 >
  2. Lưu và đóng tệp và bây giờ bạn tốt để đi ..

1

Hãy thử đặt JAVA_HOME của bạn vào đúng thư mục. Google để thiết lập các biến môi trường trong Windows.


Tôi đã làm theo các hướng dẫn sau: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html nhưng vô ích
Wallter

Tôi ghét phải nói điều đó ... nhưng bạn đã khởi động lại chưa?
Topher Fangio

Khởi động lại là không cần thiết để cài đặt Java.
Thorbjørn Ravn Andersen

1
JAVA_HOME cũng không cần thiết. Nó là PATH được sử dụng để tìm javaw.exe. (JAVA_HOME được sử dụng bởi một số ứng dụng khác như ant, vì vậy dù sao cũng không sai khi cài đặt nó)
user85421

1

Tôi cũng gặp phải vấn đề này Trường hợp của tôi như sau:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Trong văn bản:

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

Tôi thấy các loại giá trị đăng ký của Pathchúng là khác nhau, vì vậy tôi đã kiểm tra xem đường dẫn có hợp lệ hay không bằng lệnh sau:

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

Kết quả là, tôi đặt lại môi trường cục bộ (người dùng hiện tại) bằng các lệnh sau ( 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

Nhưng, trong quy trình hiện tại, nó không thể truyền những thay đổi đó sang các quy trình đang chạy khác.

Tuy nhiên, nếu bạn trực tiếp sửa đổi các biến môi trường người dùng trong Registry Editor,

những sửa đổi cho các biến môi trường không dẫn đến thay đổi ngay lập tức. Ví dụ: nếu bạn bắt đầu một Dấu nhắc lệnh khác sau khi thực hiện các thay đổi, các biến môi trường sẽ phản ánh các giá trị trước đó (không phải hiện tại). Các thay đổi không có hiệu lực cho đến khi bạn đăng xuất và sau đó đăng nhập lại.

Để thực hiện các thay đổi này mà không cần phải đăng xuất, hãy phát thông báo WM_SettINGCHANGE tới tất cả các cửa sổ trong hệ thống, để mọi ứng dụng quan tâm (như Windows Explorer, Trình quản lý chương trình, Trình quản lý tác vụ, Bảng điều khiển, v.v.) có thể thực hiện cập nhật.

Xem chi tiết tại Cách truyền bá các biến môi trường cho hệ thống

Ở đây, tôi đưa ra một kịch bản powershell để làm điều đó:

# 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

Kiểm tra Window> Preferences> Java> JREs đã cài đặt. Hãy chắc chắn rằng có một cái gì đó ở đó; nếu không, thêm một cái.

Gần đây bạn đã cập nhật JDK của bạn?


Có, tôi đã cố gắng thêm tiện ích Android. Nhưng không (như Topher Fangio đã nói,) Tôi không thể khởi động Eclipse ngay bây giờ.
Wallter

0

JDK không cài đặt JVM trong đường dẫn mặc định.

Trừ khi bạn cần các công cụ bên ngoài để chạy như ant, thì không phải JDK là đủ để Eclipse chạy. Cách dễ nhất để cài đặt một JVM như vậy là truy cập http://java.com và để nó cài đặt bất cứ thứ gì nó muốn cài đặt.

Sau đó bấm đúp vào nhị phân Eclipse một lần nữa.


Tôi đã cài đặt lại nó (thậm chí nó còn hỏi tôi có muốn cài đặt lại không) nhưng không có kết quả. (Tôi đã làm cả plugin Google Chrome 14 - hoặc một cái gì đó tương tự && Firefox)
Wallter

Bạn đã đến java.com? Không phải javasoft.com?
Thorbjørn Ravn Andersen

0

đặt biến JAVA_HOME và quảng cáo JAVA_HOME / bin thành biến đường dẫn phát triển.


như thế này: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - nó vẫn không hoạt động :)
Wallter

Tham chiếu JAVA_HOME trong biến đường dẫn yêu cầu nhúng nó:% JAVA_HOME% \ bin
Heri

Đối với tôi (Windows 10 64 bit + Eclipse 4.10), mẹo là thêm vào, ngoài JAVA_HOMEbiến môi trường, JRE_HOMEbiến được đặt thành vị trí của javaw.exevị trí (có lẽ luôn là thư mục bin của JDK được cài đặt ).
Guy Avraham

0

Tôi gặp vấn đề tương tự (Windows 7 x64, JDK 64 bit, Eclipse 32 bit) và tôi đã tìm thấy 2 giải pháp:

  • Cài đặt phiên bản Eclipse 64 bit (được tìm thấy bằng cách nhấp vào tab "Phát triển bản dựng" trên trang tải xuống.)
  • Cài đặt phiên bản 32 bit của JDK.

Xem nhưng bạn đang sử dụng Windows 7 x86 trong đó tôi đang sử dụng x64 --- vì những người khác đã nói rằng vấn đề này có thể là một vấn đề khó khăn trong phần lập trình của họ về cách trang web của họ 'phát hiện phiên bản' (ví dụ x64 hoặc x86) nên sử dụng
Wallter

Sửa chữa, tôi đang sử dụng Windows 7 x64
Tim

0

Tôi đã từng gặp vấn đề tương tự. Cách dễ dàng, đối với tôi để khắc phục nó là cài đặt cả JRE và nhật thực là x86 hoặc x64. Khi loại bit của chúng không khớp, nhật thực không thể tìm thấy nó. Vì vậy, nếu việc gỡ cài đặt và cài đặt lại để làm cho chúng khớp với nhau không phải là vấn đề lớn, tôi sẽ làm điều đó.

Tôi đã kết thúc việc cài đặt: Môi trường chạy thi hành Java 1.7.0.3 (64-bit) và Indigo Eclipse (3.7) (64-bit)

Sau đó, nó chỉ hoạt động.


0

Khi tôi chỉ sao chép javaw, đã xảy ra lỗi thứ hai, không có tệp java.dll, khi tôi sao chép nó, nhật thực không bắt đầu, điều tôi đã làm là tôi đã sao chép toàn bộ thư mục jdk vào thư mục nhật thực và đổi tên id thành jre. Vấn đề được giải quyết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.