Versi java salah dilaporkan

17

Saya menjalankan Windows 7 Professional x64 dan menginstal versi Java berikut:

x64

  • C: \ Program Files \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • jre6
    • jre7

x86

  • C: \ Program Files (x86) \ Java
    • jre1.6.0_07
    • jre6
    • jre7

dalam variabel lingkungan saya, saya PATHmemiliki konten C:\Program Files\Java\jdk1.6.0_24\bindanJAVA_HOME set keC:\Program Files\Java\jdk1.6.0_24\bin

Namun menjalankan java -versionlaporan

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)

Bagaimana hal ini terjadi ketika tidak ada referensi ke versi Java ini di variabel Lingkungan saya.

Setiap bantuan tentang masalah ini akan sangat bagus karena saya mencoba menjalankan Apache ANT menggunakan Java 1.6.

Maleakhi
sumber

Jawaban:

27

Anda mungkin telah menyalin java.exe ke salah satu jalur sistem (AFAIK itu perilaku default pemasang Java). Untuk memeriksa apa yang sebenarnya dieksekusi ketika Anda menjalankan 'java -version' dijalankan dari baris perintah:
for %I in (java.exe) do @echo %~$PATH:Idan itu akan memberi tahu Anda di mana itu.

wmz
sumber
1
Wow - itu sangat membantu! Untuk beberapa alasan java.exeada di system32. Saya akan memindahkannya ke jalan seperti yang disebutkan.
Maleakhi
1
Masalah yang sama di sini, java.exeadalah ke system32ANDProgramData\Oracle\javapath
Kevin Labécot
Jika Anda bertanya-tanya apa yang harus dilakukan selanjutnya, Anda dapat mengganti nama exes. Saya mengganti nama java.exe, javaw.exedan javaws.exemenjadi java-foobar.exe, javaw-foobar.exedan javaws-foobar.exemasing - masing.
jaharuiz
Yang meningkatkan jumlah tempat saya perlu memeriksa ke 4: PATH, JAVA_HOME, Control Panel dan sekarang juga System32 ... Hanya wow. Suatu hari registri akan menjadi 5. Dan untuk Anda, saya berterima kasih kepada Pak.
Jaroslav Záruba
2

Folder PATH diperiksa sesuai urutannya. Coba pindahkan jalur java ke depan. Jika itu memperbaiki masalah maka Anda memiliki versi lain di suatu tempat di jalur Anda.

Chris Nava
sumber
2

Saat memasang JRE publik (digunakan oleh plugin Java), file java.exe juga dibuat di C: \ WINNT \ system32 (IIRC). Mungkin ini perintah java yang dijalankan, karena C: \ WINNT \ system32 muncul sebelum direktori JDK / bin di PATH Anda.

Letakkan direktori JDK / bin di awal PATH

Pyuri Sahu
sumber
0

Ini akan melaporkan versi java yang benar dan itu juga akan memberi tahu Anda apa masalahnya:

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

Saya sarankan Anda menghapus semua JDK dan JRE. Kemudian, Anda menginstal JDK terbaru dan memperbarui classpath, JAVA_HOME, dan path Anda. Ini berhasil untuk saya.

Abderrahmen
sumber
-1

Seperti yang baru-baru ini saya temukan, pastikan bahwa Anda mendefinisikan JAVA_HOMEdi bagian "Sistem variabel" dan bukan bagian "Variabel pengguna".

Saya sudah %JAVA_HOME%\bindi awal PATHtetapi tidak berhasil - menambah JAVA_HOMEsistem memperbaiki masalah.

Paul
sumber