Mengapa java -versi mengembalikan versi yang berbeda ke yang didefinisikan dalam JAVA_HOME?

18

JAVA_HOME saya disetel ke C:\bea\jdk150_10\bin(Java 1.5). Namun, ketika saya menjalankan java -versionsaya mendapatkan yang berikut:

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)

Bagaimana saya bisa menggunakan versi 1.5?

Jeune
sumber

Jawaban:

14

Lari

where java

di prompt perintah Anda.

Di sistem saya, itu mencetak sesuatu yang sangat tak terduga:

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

Memverifikasi memang ada Java di sana:

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)

Jadi salah satu solusinya adalah memastikan Java pilihan Anda ada di PATH sebelumnya C:\Windows\System32.

Saya juga mencoba mencari di panel kontrol Java untuk melihat apakah itu mengelola versi C:\Windows\System32, tetapi saya hanya bisa melihat pengaturan, bukan mengeditnya. Mungkin ini berhasil untuk Anda?

Mikel
sumber
8

Ubah PATHvariabel, bukan JAVA_HOME.

Lihat dokumentasi Java tentang pengaturan atau mengubah variabel PATH Anda .

  1. Mulai -> Control Panel -> System -> Advanced

  2. Klik pada Variabel Lingkungan, di bawah Variabel Sistem, temukan PATH, dan klik padanya.

  3. Di jendela Edit, modifikasi PATHdengan menambahkan lokasi kelas ke nilai PATH. Jika Anda tidak memiliki item PATH, Anda dapat memilih untuk menambahkan variabel baru dan menambahkan PATHsebagai nama dan lokasi kelas sebagai nilainya.

  4. Menutup jendela.

  5. Buka kembali jendela Command prompt, dan jalankan kode Java Anda.

John T
sumber
Saya tidak melihat referensi ke jdk 6 pada variabel PATH baik. Only Java 5 X)
Jeune
Ini contoh, prosedurnya masih sama ..
John T
4

Tidak semua aplikasi digunakan JAVA_HOMEuntuk mendapatkan versi JDK. Seperti yang dikatakan sebelumnya, beberapa dari mereka menggunakan %SystemRoot%\System32\java.exe. Anda dapat melakukannya %SystemRoot%\java.exe -versionuntuk melihat versi mana itu.

Apa yang harus saya tambahkan ke respons lain adalah bahwa jika Anda membangun dengan Maven, M2_HOME\binharus juga sebelum %SystemRoot%agar Maven menggunakan JAVA_HOMEversi yang benar .

Mihai Rus
sumber
1

JAVA_HOME tidak boleh mengarah ke nampan!

SET "JAVA_HOME = C: \ bea \ jdk150_10" SET "PATH =% JAVA_HOME% / bin;% PATH%"

Pastikan juga jalur ke JAVA_HOME benar! Jika ada kesalahan ketik dan C: \ Windows \ System32 \ ada di jalur Anda maka java.exe akan dijalankan alih-alih yang Anda tentukan.

Karma buruk
sumber
0

Bagi saya pada win 10, javac -versi menunjukkan java7 dan java -versi menunjukkan java8. Melakukan "di mana java" pada command prompt menunjukkan java di tiga lokasi. Saya harus menghapus Java dari C: \ Windows \ System32, Hapus entri "C: \ ProgramFile \ Oracle \ Java \ javapath" dan "C: \ ProgramData \ Oracle \ Java" dari variabel path, tetap hanya entri Jdk7 dalam variabel path bekerja setelah dua jam perjuangan panjang.

Sneha Rathod
sumber
0

Pergi ke pengaturan lanjutan dari variabel lingkungan dan edit variabel path. versi java mana pun yang Anda inginkan, cukup naik ke jalur versi di atas semua variabel lingkungan lainnya dari versi java lainnya.

di sini dalam gambar, variabel lingkungan java_home dipindahkan dari lingkungan java oracle

nikita dharurkar
sumber
-1

Coba ini:

@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
Djangofan
sumber
-1

Saya menghadapi masalah yang sama. Kemudian saya menemukan bahwa pelakunya adalah Java 8. Sebelumnya saya menginstal java 8 tetapi sekarang tidak ada folder untuk java 8 dan JAVA_HOME saya disetel ke jre7 tetapi saya masih menghadapi masalah di atas.

larutan

Saya menghapus javapath yang ada di C: \ ProgramData \ Oracle \ Java . Sekarang sistem saya berfungsi dengan baik. Itu juga menyelesaikan masalah startup gerhana saya .

Sudip7
sumber
-2

Saya memiliki masalah yang sama. Melakukan ini, saya menyelesaikan masalah.

Pada Windows 8 atau 10, Anda perlu menghapus "C: \ ProgramFile \ Oracle \ Java \ javapath" dari path dalam variabel lingkungan.

Ini dapat menyelesaikan masalah.

Isuru Sandamal
sumber
2
Ini sudah disarankan, 2 tahun lalu
Ramhound