ทำไม java -version จึงส่งคืนเวอร์ชันที่แตกต่างไปเป็นเวอร์ชันที่กำหนดใน JAVA_HOME


18

JAVA_HOME ของฉันถูกตั้งค่าเป็นC:\bea\jdk150_10\bin(Java 1.5) อย่างไรก็ตามเมื่อฉันเรียกใช้java -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)

ฉันจะใช้รุ่น 1.5 ได้อย่างไร

คำตอบ:


18

ขณะที่มิเกลได้กล่าวถึงC:\Windows\System32\java.exeในเครื่องของคุณจาวาจะนำมาจาก

เปลี่ยนเส้นทางในส่วนตัวแปรของระบบสิ่งแวดล้อมเป็นที่กล่าวถึงโดยจอห์น T

และปรับเปลี่ยนมันมีC:\bea\jdk150_10\binมาก่อน%SystemRoot%\system32 ในเส้นทาง


14

วิ่ง

where java

ที่พร้อมรับคำสั่งของคุณ

ในระบบของฉันมันพิมพ์อะไรบางอย่างที่ไม่คาดคิด:

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

การตรวจสอบว่ามี 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)

ดังนั้นหนึ่งในการแก้ปัญหาคือเพื่อให้แน่ใจว่า Java C:\Windows\System32แนะนำของคุณอยู่ในเส้นทางก่อน

ฉันลองค้นหาในแผงควบคุม Java เพื่อดูว่าจัดการเวอร์ชันได้C:\Windows\System32หรือไม่ แต่ฉันสามารถดูการตั้งค่าได้เท่านั้นไม่สามารถแก้ไขได้ บางทีมันอาจจะเหมาะกับคุณ?


8

ปรับเปลี่ยนตัวแปรไม่PATHJAVA_HOME

ดูเอกสาร Java บนการตั้งค่าหรือเปลี่ยนตัวแปรเส้นทางของคุณ

  1. เริ่ม -> แผงควบคุม -> ระบบ -> ขั้นสูง

  2. คลิกที่ตัวแปรสภาพแวดล้อมภายใต้ตัวแปรระบบค้นหาPATHและคลิกที่

  3. ในการแก้ไขหน้าต่างแก้ไขโดยการเพิ่มสถานที่ตั้งของชั้นเรียนเพื่อให้มีค่าสำหรับPATH PATHหากคุณไม่มีรายการPATHคุณอาจเลือกที่จะเพิ่มตัวแปรใหม่และเพิ่มPATHเป็นชื่อและที่ตั้งของชั้นเรียนเป็นค่า

  4. ปิดหน้าต่าง.

  5. เปิดหน้าต่างพรอมต์คำสั่งอีกครั้งและเรียกใช้รหัส Java ของคุณ


ฉันไม่เห็นการอ้างอิงใด ๆ กับ jdk 6 บนตัวแปร PATH เช่นกัน เฉพาะ Java 5 X)
นางเอก

มันเป็นตัวอย่างขั้นตอนยังคงเหมือนเดิม ..
John T

4

ไม่ใช่ทุกแอพพลิเคชั่นที่ใช้JAVA_HOMEรับรุ่น JDK %SystemRoot%\System32\java.exeที่กล่าวก่อนบางส่วนของพวกเขาใช้ คุณสามารถทำได้%SystemRoot%\java.exe -versionเพื่อดูว่าเป็นรุ่นใด

สิ่งที่ฉันต้องเพิ่มในการตอบสนองอื่น ๆ คือถ้าคุณสร้างด้วย Maven M2_HOME\binก็ต้องเป็นมาก่อน%SystemRoot%เพื่อให้ Maven ใช้JAVA_HOMEรุ่นที่ ถูกต้อง


1

JAVA_HOME ไม่ควรชี้ไปที่ถังขยะ!

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

ตรวจสอบให้แน่ใจด้วยว่าเส้นทางไปยัง JAVA_HOME นั้นถูกต้อง! หากมีการพิมพ์ผิดและ C: \ Windows \ System32 \ อยู่ในเส้นทางของคุณแล้ว java.exe จะถูกเรียกใช้แทนที่จะเป็นแบบที่คุณระบุ


0

สำหรับฉันใน win 10, javac -version แสดง java7 และ java -version แสดง java8.Doing "โดยที่ java" บน command prompt แสดง java ที่สามตำแหน่ง ฉันต้องลบ Java ออกจาก C: \ Windows \ System32, ลบรายการ "C: \ ProgramFile \ Oracle \ Java \ javapath" และ "C: \ ProgramData \ Oracle \ Java" จากตัวแปรพา ธ เก็บเฉพาะรายการ Jdk7 ในตัวแปรพา ธ ทำงานหลังจากการต่อสู้ที่ยาวนานสองชั่วโมง


0

ไปที่การตั้งค่าขั้นสูงของตัวแปรสภาพแวดล้อมและแก้ไขตัวแปรพา ธ เวอร์ชันใดของจาวาที่คุณต้องการเพียงเลื่อนขึ้นไปที่เวอร์ชันพา ธ เหนือตัวแปรสภาพแวดล้อมอื่นทั้งหมดของเวอร์ชันจาวาอื่น ๆ

ที่นี่ในตัวแปรสภาพแวดล้อมอิมเมจ java_home ถูกย้ายขึ้นมากกว่าออราเคิลจาวา


-1

ลองสิ่งนี้:

@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

ฉันกำลังเผชิญกับปัญหาเดียวกัน ต่อมาฉันพบว่าผู้ร้ายคือ Java 8. ก่อนหน้านี้ฉันติดตั้ง java 8 แต่ตอนนี้ไม่มีโฟลเดอร์สำหรับ java 8 และ JAVA_HOME ของฉันตั้งค่าเป็น jre7 แต่ยังฉันเผชิญปัญหาข้างต้น

วิธีการแก้

ฉันลบ javapath อยู่ใน C: ตอนนี้ระบบของฉันทำงานอย่างถูกต้อง นอกจากนี้ยังได้รับการแก้ไขปัญหาการเริ่มต้นคราสของฉัน


-2

ฉันมีปัญหาเดียวกัน การทำเช่นนี้ฉันแก้ไขปัญหาได้แล้ว

บน Windows 8 หรือ 10 คุณต้องลบ "C: \ ProgramFile \ Oracle \ Java \ javapath" ออกจากเส้นทางในตัวแปรสภาพแวดล้อม

วิธีนี้อาจช่วยแก้ปัญหาได้


2
เรื่องนี้ได้รับการแนะนำแล้ว 2 ปีที่แล้ว
Ramhound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.