2013-02-26 60 views
28

Tôi có một JRE trong C:\Program Files (x86)\Java\jre6 và đó là lần duy nhất tại thời điểm tôi cài đặt Eclipse. Sau đó tôi đã cài đặt một JDK hoàn chỉnh trong C:\home\SFTWR\jdk1.6.0_21 và đã thay đổi biến môi trường JAVA_HOME của mình thành biến đó. Tuy nhiên, mỗi khi tôi bắt đầu một không gian làm việc Eclipse mới, nó chỉ chọn JRE cũ và tôi phải loại bỏ nó một cách thủ công và thêm nó vào một vùng mới.Làm thế nào để thay đổi JRE mặc định cho tất cả các không gian làm việc Eclipse?

Làm cách nào để liên kết cài đặt Eclipse của tôi với JDK mới sao cho mỗi không gian làm việc mới chỉ trỏ đến đó? Tôi đã kiểm tra eclipse.ini nhưng không có tài liệu tham khảo có JRE để đi đến.

UPDATE:

tôi đã đi vào Prefs->Java->Installed JRE s, thêm địa điểm mới, đánh dấu nó như là mặc định, loại bỏ người kia, và đó là chỉ có hiệu lực đối với không gian làm việc hiện tại. Tuy nhiên, khi tôi mở một vùng làm việc mới, chỉ có sẵn JRE cũ. Vì vậy, điều này không thay đổi cấu hình Eclipse cốt lõi được áp dụng trên tất cả các không gian làm việc (ít nhất là mới)

Trả lời

23

Cuối cùng đã nhận nó: Cách Eclipse nhặt JRE đang sử dụng PATH của hệ thống.

Tôi chưa có C:\home\SFTWR\jdk1.6.0_21\bin trong đường dẫn trước đây và tôi đã có C:\Program Files (x86)\Java\jre6\bin. Tôi có cả hai số JRE_HOMEJAVA_HOME được đặt thành C:\home\SFTWR\jdk1.6.0_21 nhưng cả hai đều không quan trọng. Tôi đoán Eclipse đã làm gì đó (một cái gì đó có hiệu lực) nơi java (hoặc trong đó trên UNIX/Linux) để xem Java ở đâu trên đường dẫn và lấy JRE mà java.exe thuộc về. Trong trường hợp của tôi, mặc dù tất cả các chỉnh sửa cấu hình tôi đã thực hiện (bao gồm tùy chọn eclipse.ini -vm như đề xuất ở trên), nó vẫn bị mắc kẹt với những gì đã có trong đường dẫn.

Tôi đã xóa thùng JRE cũ khỏi đường dẫn, đặt thùng mới vào và nó hoạt động cho tất cả các không gian làm việc.

+2

Đừng quên nhặt [Con rối Sock] của bạn (http://winterbash2013.stackexchange.com/sock-puppet) - mặc dù việc tìm đầu bạn để đặt nó có thể khó khăn. ;-) –

+2

Tôi tự hỏi liệu nhóm nhật thực sẽ bao giờ thực hiện nhật thực ngay cả từ xa thân thiện với người dùng. FFS .... điều này nghĩa đen làm việc tốt ngày hôm qua, và ngày hôm nay mà không có cảnh báo chỉ quyết định tôi đã không dành đủ ngày làm việc phục vụ nhật thực. Cảm ơn vì điều này ... đã tha thứ cho tôi vì phải cài đặt lại java cho lần thứ mười một để xoa dịu nhật thực. Lần tới bệnh chỉ hy sinh một con cừu hay cái gì đó trước thời hạn. –

14

Mở Java> Trang tùy chọn JRE được cài đặt. Đánh dấu vào ô trên dòng cho JRE mà bạn muốn gán làm JRE mặc định trong bàn làm việc của bạn. Nếu JRE bạn muốn gán làm mặc định không xuất hiện trong danh sách, bạn phải thêm nó. Nhấp vào OK.

Nguồn- http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-assign_default_jre.htm

+1

tính năng này không hoạt động. Tôi đã đi vào 'Prefs-> Java-> JRE được cài đặt', thêm vị trí mới, đánh dấu vị trí đó là mặc định, loại bỏ vị trí còn lại và nó chỉ hiệu quả đối với không gian làm việc hiện tại. khi tôi mở một không gian làm việc mới, chỉ có JRE cũ đã có sẵn – amphibient

+0

bạn đã thử gán lại JRE trong không gian làm việc mới chưa? – KodeSeeker

+1

có, tôi đã tạo một không gian làm việc hoàn toàn mới, đã thay đổi JRE, đã đóng nó. sau đó mở thêm một không gian làm việc mới với hy vọng rằng sự thay đổi JRE trước đó sẽ có hiệu lực nhưng nó không giống như tôi chỉ có JRE – amphibient

11

Các JRE cài đặt được sử dụng cho những gì JRE cùng để thực hiện cho các dự án Java hạ lưu của bạn và máy chủ. Theo như những gì JVM hoặc JRE được sử dụng để thực thi quy trình Eclipse (bàn làm việc) chính nó được kiểm soát bởi môi trường, lịch sử và eclipse.exe nhị phân của bạn. Vì vậy, eclipse.exe tự quyết định những gì JRE Eclipse sẽ thực thi chính nó với các tùy chọn JRE không được cài đặt vì chúng không được đọc cho đến khi khung công tác OSGi được thiết lập và chạy được tải sau khi JVM/JRE được chọn.

Vì vậy, đối với không gian làm việc mới, Eclipse sẽ sử dụng JRE hiện đang thực thi của nó để điền các phần tử JRE.

Cách tốt nhất tôi biết làm thế nào để buộc eclipse.exe sử dụng JRE mà bạn cho biết thông qua khóa chuyển đổi -vm. Vì vậy, trong eclipse.ini bạn làm điều này:

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502 
-vm 
/path/to/exactly/what/jre/you/want/as/default/javaw.exe 
... 
+0

điều này đã không làm việc. Tôi đã thêm '-vm C: \ home \ SFTWR \ jdk1.6.0_21 \ bin \ javaw.exe' – amphibient

+0

Bạn đã đặt -vm trên một dòng riêng biệt làm đường dẫn chưa? nó sẽ trông giống như -vm C:/home/... – gamerson

+0

nó làm việc cho tôi vừa thêm --vm C: \ Program Files \ Java \ jdk1.8.0_131 \ jre \ bin \ javaw.exe trong tập tin cấu hình nhật thực –

0

cố gắng thay đổi thứ tự: nhấp chuột phải vào bạn project-> BuildPath-> Configure ...-> Đặt hàng và xuất tab -> di chuyển jre7 UP.

5

Câu trả lời của tôi sẽ trùng lặp với nhóm lưỡng cư trong khi thêm vào đó.

biến JAVA_HOME của bạn là tốt, nhưng bạn cũng cần phải thêm phần sau đây để biến Path của bạn:

;%JAVA_HOME%\bin 

này sẽ cho phép các ứng dụng của bạn trong môi trường Windows của bạn để truy cập JDK của bạn. Bạn cũng nên khởi động lại máy tính của mình khi bạn đã thêm các biến môi trường này trước khi kiểm tra xem chúng có hoạt động hay không. Trong trường hợp của tôi, thậm chí đăng xuất và sau đó trở lại trong không hoạt động: Tôi đã phải khởi động lại hoàn toàn.

Nếu bạn muốn kiểm tra xem các biến môi trường có được đặt chính xác không, bạn có thể mở lời nhắc lệnh và nhập>echo %JAVA_HOME và>echo %Path% để xem các biến đó có hoạt động chính xác hay không. Trong khi tìm kiếm giải pháp, tôi cũng chạy vào những người tuyên bố rằng họ cần thêm dấu ngoặc kép (") xung quanh các biến môi trường để làm cho chúng hoạt động chính xác ("%JAVA_HOME%"\bin) nếu đường dẫn JAVA_HOME của bạn bao gồm dấu cách. đầu tiên, nhưng sau khi thực hiện một khởi động lại đầy đủ các biến của tôi dường như để làm việc một cách chính xác mà không cần dấu ngoặc kép mặc dù không gian

-1

tôi chuyển đến:.

Eclipse>Pref>Java>Installed JRE>Search... 

2 trong số họ hiện lên và tôi đã kiểm tra mới nhất của một trước khi tôi. đã làm điều này tôi cũng đã đi đến About>Check for Updates và cập nhật nó.Tôi không phải cài đặt lại bất kỳ JRE hoặc JDK hoặc.Tôi có thể đã thực hiện nó một thời gian trở lại, ngoại trừ nó là với 1,6 không 1,4. giúp!

0

Tôi đã gặp phải sự cố tương tự. Giải quyết: - Cửa sổ -> Tuỳ chọn -> Java -> JRE đã cài đặt -> Thêm ... - Nhấp chuột phải vào dự án của bạn -> Đường dẫn xây dựng -> Định cấu hình đường dẫn xây dựng -> Thêm thư viện- -> thư viện hệ thống JRE -> tiếp theo -> WorkSpace Mặc định JRE

7

Trong nhật thực đi đến

Window-> Java -> JRE cài đặt

bạn có thể loại bỏ jre cài đặt hiện tại của bạn và thêm jdk bằng cách chỉ định đường dẫn đến nơi cài đặt jdk.

enter image description here

5

Tôi chạy vào một vấn đề tương tự, nơi nhật thực đã không sử dụng hiện tại của tôi %JAVA_HOME% đó là trên path và được thay vì sử dụng một phiên bản cũ. Tài liệu chỉ ra rằng nếu không có -vm được chỉ định trong tệp ini, nhật thực sẽ tìm kiếm thư viện được chia sẻ jvm.dll Điều này xuất hiện trong sổ đăng ký theo khóa HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment được cài đặt khi sử dụng trình cài đặt java windows (khóa có thể hơi khác một chút 64 bit so với 32 bit, nhưng tìm kiếm jvm.dll). Vì đã tìm thấy thư viện được chia sẻ này trên số path của mình trước số %JAVA_HOME%/bin, nó đang sử dụng phiên bản cũ.

Giống như những người khác đã nêu, cách dễ nhất để giải quyết vấn đề này là chỉ định vm cụ thể bạn muốn sử dụng trong tệp eclipse.ini. Tôi đang viết điều này bởi vì tôi không thể tìm ra cách nó vẫn còn sử dụng phiên bản cũ khi nó không được chỉ định bất cứ nơi nào trên path hoặc eclipse.ini tệp.

Xem liên kết đến doc dưới đây: http://help.eclipse.org/kepler/topic/org.eclipse.platform.doc.isv/reference/misc/launcher.html?cp=2_1_3_1

Tìm một VM và sử dụng API JNI Invocation

Eclipse phóng có khả năng tải các máy ảo Java trong quá trình nhật thực bằng cách sử dụng Java API yêu cầu giao diện gốc. Trình khởi chạy vẫn có khả năng khởi động máy ảo Java trong một tiến trình riêng biệt giống như phiên bản trước của Eclipse đã làm. Phương pháp nào được sử dụng tùy thuộc vào cách VM được tìm thấy.

Không -vm định

Khi không -vm được chỉ định, launcher tìm kiếm một máy ảo đầu tiên trong một thư mục jre trong thư mục gốc của nhật thực toàn phần và sau đó trên con đường tìm kiếm. Nếu java được tìm thấy ở một trong hai vị trí, thì trình khởi chạy tìm kiếm thư viện được chia sẻ jvm (jvm.dll trên Windows, libjvm.so trên nền tảng * nix) liên quan đến tệp java thực thi đó.

  • Nếu thư viện được chia sẻ jvm được tìm thấy, trình khởi chạy sẽ tải thư viện và sử dụng API gọi JNI để bắt đầu vm.
  • Nếu không tìm thấy thư viện được chia sẻ jvm, trình khởi chạy sẽ chạy trình khởi chạy java để bắt đầu vm trong quy trình mới.

-vm quy định trên dòng lệnh hoặc trong eclipse.ini

Eclipse có thể được bắt đầu với "-vm" để chỉ một máy ảo để sử dụng. Có một vài khả năng cho giá trị của:

  • thư mục: là một thư mục. Chúng tôi tìm trong thư mục đó cho:
    • (1) một phóng java hoặc
    • (2) JVM thư viện chia sẻ.

Nếu chúng tôi tìm thấy thư viện được chia sẻ jvm, chúng tôi sử dụng lời gọi JNI. Nếu chúng tôi tìm thấy trình khởi chạy, chúng tôi sẽ tìm thư viện jvm ở các vị trí đã biết có liên quan đến trình khởi chạy. Nếu chúng ta tìm thấy một, chúng ta sử dụng lời gọi JNI. Nếu không tìm thấy thư viện jvm nào, chúng tôi thực thi java trong một tiến trình mới.

  • java.exe/javaw.exe: là một đường dẫn đến một launcher java. Chúng tôi thực hiện trình khởi chạy java để bắt đầu vm trong một quy trình mới.

  • jvm dll hoặc như vậy: là đường dẫn đến thư viện được chia sẻ jvm. Chúng tôi cố gắng tải thư viện đó và sử dụng API gọi JNI để bắt đầu vm trong quy trình hiện tại.

0

khi bạn chọn chạy cấu hình, có một JRE khai thác lên tới vòi nước chính, chọn "Workspace mặc định JRE (JDK1.7)".

Đảm bảo sử dụng jdk trong Prefs->Java->Installed JREs ->Execution Environment

Các vấn đề liên quan