Tại sao java -version trả lại một phiên bản khác với phiên bản được xác định trong JAVA_HOME?


18

JAVA_HOME của tôi được đặt thành C:\bea\jdk150_10\bin(Java 1.5). Tuy nhiên, khi tôi chạy, java -versiontôi nhận được như sau:

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Làm cách nào để sử dụng phiên bản 1.5?

Câu trả lời:



14

Chạy

where java

tại dấu nhắc lệnh của bạn.

Trên hệ thống của tôi, nó đã in một thứ khá bất ngờ:

C:\Users\Mikel>where java
C:\Windows\System32\java.exe

Xác minh thực sự có Java ở đó:

C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Vì vậy, một giải pháp là đảm bảo Java ưa thích của bạn nằm trong PATH trước đó C:\Windows\System32.

Tôi cũng đã thử tìm trong bảng điều khiển Java để xem nó có quản lý phiên bản không C:\Windows\System32, nhưng tôi chỉ có thể xem các cài đặt, không chỉnh sửa chúng. Có lẽ nó làm việc cho bạn?


8

Sửa đổi PATHbiến, không JAVA_HOME.

Xem tài liệu Java về cài đặt hoặc thay đổi biến PATH của bạn .

  1. Bắt đầu -> Bảng điều khiển -> Hệ thống -> Nâng cao

  2. Nhấp vào Biến môi trường, bên dưới Biến hệ thống, tìm PATHvà nhấp vào nó.

  3. Trong cửa sổ Chỉnh sửa, sửa đổi PATHbằng cách thêm vị trí của lớp vào giá trị cho PATH. Nếu bạn không có mục này PATH, bạn có thể chọn thêm một biến mới và thêm PATHlàm tên và vị trí của lớp làm giá trị.

  4. Đóng cửa sổ.

  5. Mở lại cửa sổ nhắc lệnh và chạy mã Java của bạn.


Tôi cũng không thấy bất kỳ tài liệu tham khảo nào về jdk 6 trên biến PATH. Chỉ Java 5 X)
Jeune

Đó là một ví dụ, quy trình vẫn như cũ ..
John T

4

Không phải tất cả các ứng dụng sử dụng JAVA_HOMEđể có được phiên bản JDK. Như đã nói trước đây, một số người trong số họ sử dụng %SystemRoot%\System32\java.exe. Bạn có thể làm %SystemRoot%\java.exe -versionđể xem đó là phiên bản nào.

Điều tôi phải thêm vào các phản hồi khác là nếu bạn xây dựng với Maven, thì M2_HOME\bincũng phải có trước %SystemRoot%để Maven sử dụng JAVA_HOMEphiên bản chính xác .


1

JAVA_HOME không nên chỉ vào thùng!

THIẾT LẬP "JAVA_HOME = C: \ bea \ jdk150_10" SET "PATH =% JAVA_HOME% / bin;% PATH%"

Đồng thời đảm bảo rằng đường dẫn đến JAVA_HOME là chính xác! Nếu có lỗi đánh máy và C: \ Windows \ System32 \ nằm trong đường dẫn của bạn thì java.exe sẽ được chạy thay vì lỗi bạn đã chỉ định.


0

Đối với tôi trên win 10, javac -version hiển thị java7 và java -version hiển thị java8. Đang thực hiện "nơi java" trên dấu nhắc lệnh hiển thị java tại ba vị trí. Tôi đã phải xóa Java khỏi C: \ Windows \ System32, Xóa mục nhập của "C: \ ProgramFile \ Oracle \ Java \ javapath" và "C: \ ProgramData \ Oracle \ Java" khỏi biến đường dẫn, chỉ giữ mục nhập Jdk7 trong biến đường dẫn Làm việc sau hai giờ vật lộn dài.


0

Chuyển đến cài đặt nâng cao của các biến môi trường và chỉnh sửa biến đường dẫn. bất kỳ phiên bản java nào bạn muốn chỉ cần di chuyển lên phiên bản đó trên tất cả các biến môi trường khác của các phiên bản java khác.

ở đây trong biến môi trường java_home hình ảnh được di chuyển lên hơn môi trường java oracle


-1

Thử đi:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause

-1

Tôi đã phải đối mặt với cùng một vấn đề. Sau đó tôi thấy rằng thủ phạm là Java 8. Trước đây tôi đã cài đặt java 8 nhưng hiện tại không có thư mục nào cho java 8 và JAVA_HOME của tôi được đặt thành jre7 nhưng tôi vẫn gặp phải vấn đề trên.

giải pháp

Tôi đã xóa javapath có trong C: \ ProgramData \ Oracle \ Java . Bây giờ hệ thống của tôi hoạt động đúng. Nó cũng giải quyết vấn đề khởi động nhật thực của tôi .


-2

Tôi gặp vấn đề tương tự. Làm điều này tôi đã giải quyết vấn đề.

Trên Windows 8 hoặc 10, bạn cần xóa "C: \ ProgramFile \ Oracle \ Java \ javapath" khỏi đường dẫn trong biến môi trường.

Điều này có thể giải quyết vấn đề.


2
Điều này đã được đề xuất rồi, 2 năm trước
Ramhound
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.