Sai java -version được báo cáo


17

Tôi đang chạy Windows 7 Professional x64 và đã cài đặt các phiên bản Java sau:

x64

  • C: \ Tệp chương trình \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • tháng 6
    • tháng 7

x86

  • C: \ Tệp chương trình (x86) \ Java
    • jre1.6.0_07
    • tháng 6
    • tháng 7

trong các biến môi trường của tôi, tôi PATHcó chứa C:\Program Files\Java\jdk1.6.0_24\binJAVA_HOMEđặt thànhC:\Program Files\Java\jdk1.6.0_24\bin

Tuy nhiên, chạy java -versionbáo cáo

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Làm thế nào là trường hợp này khi không có tham chiếu đến phiên bản Java này trong các biến Môi trường của tôi.

Bất kỳ trợ giúp nào về vấn đề này sẽ rất tuyệt khi tôi đang cố gắng chạy Apache ANT bằng Java 1.6.

Câu trả lời:


27

Bạn có thể đã sao chép java.exe vào một trong các đường dẫn hệ thống (AFAIK đó là hành vi mặc định của trình cài đặt Java). Để kiểm tra những gì thực sự thực thi khi bạn chạy 'java -version' chạy từ dòng lệnh:
for %I in (java.exe) do @echo %~$PATH:Ivà nó sẽ cho bạn biết nó ở đâu.


1
Wow - thật hữu ích! Đối với một số lý do java.exelà trong hệ thống32. Tôi sẽ di chuyển nó lên con đường như đã đề cập.
Malachi

1
Vấn đề tương tự ở đây, java.exelà vào system32ANDProgramData\Oracle\javapath
Kevin Labécot

Nếu bạn đang tự hỏi phải làm gì tiếp theo, bạn có thể đổi tên exes. Tôi đổi tên java.exe, javaw.exejavaws.exethành java-foobar.exe, javaw-foobar.exejavaws-foobar.exetương ứng.
javatarz

Điều đó làm tăng số lượng địa điểm tôi cần kiểm tra lên 4: PATH, JAVA_HOME, Bảng điều khiển và giờ là System32 ... Chỉ là wow. Một ngày đăng ký sẽ trở thành thứ 5. Và với bạn tôi cảm ơn ngài.
Jaroslav Záruba

2

Các thư mục PATH được kiểm tra theo thứ tự chúng xuất hiện. Hãy thử di chuyển đường dẫn java ra phía trước. Nếu điều đó khắc phục vấn đề thì bạn có một phiên bản khác ở đâu đó trên đường dẫn của bạn.


2

Khi cài đặt JRE công khai (được sử dụng bởi plugin Java), tệp java.exe cũng được tạo trong C: \ WINNT \ system32 (IIRC). Có lẽ lệnh java này đã được thực thi, vì C: \ WINNT \ system32 xuất hiện trước thư mục JDK / bin trong PATH của bạn.

Đặt thư mục JDK / bin ở đầu PATH


0

Điều này sẽ báo cáo phiên bản java chính xác và nó cũng sẽ cho bạn biết vấn đề là gì:

@ECHO off
ECHO ---------------
SET "JAVA_HOME=C:\Path to wherever\JDKwhatever"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
java -version
ECHO ---------------
pause

0

Tôi đề nghị bạn nên gỡ cài đặt tất cả các JDK và JRE. Sau đó, bạn cài đặt JDK mới nhất và bạn cập nhật đường dẫn lớp, JAVA_HOME và đường dẫn của bạn. Điều này làm việc cho tôi.


-1

Như tôi mới phát hiện ra, hãy đảm bảo rằng bạn đang xác định JAVA_HOMEtrong phần "Biến hệ thống" chứ không phải phần "Biến người dùng".

Tôi đã có %JAVA_HOME%\binlúc bắt đầu PATHnhưng nó không hoạt động - thêm JAVA_HOMEvào hệ thống đã khắc phục vấn đề.

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.