2010-10-14 61 views
21

Có bất kỳ lệnh nào để kiểm tra hoạt động (vì máy có thể có nhiều hơn 1 JRE được cài đặt) thư mục cài đặt JRE trong Windows không. Đối với linux, lệnh tương ứng làThư mục cài đặt JRE trong Windows

which java 

Có tương đương Windows nào không?

Trả lời

25

where java công trình cho tôi để liệt kê tất cả exe java nhưng java -verbose cho bạn biết rt.jar được sử dụng và do đó mà jre (đường dẫn đầy đủ):

[Opened C:\Program Files\Java\jre6\lib\rt.jar] 
... 

Sửa : win7 và java:

java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) 
+0

nơi java không hoạt động trong Windows. java -verbose đã làm như bạn đã đề cập. Cảm ơn. – Ankur

+0

Khi tôi làm java -verbose tôi không nhận được để xem đường dẫn. Phiên bản java nào, Winbdows bạn đang thử cái này? – Nivas

+2

@RC: nơi java sẽ chỉ hoạt động với Win7/Win2008 tôi nghĩ. –

-1

Trong dòng lệnh bạn có thể gõ java -version

+2

-1 không cung cấp thông tin đường dẫn –

+1

Nếu Java được cài đặt và biến môi trường được đặt, bạn có cần đường dẫn không? – Ram

4

Tìm câu trả lời cho câu hỏi trước của tôi here

c:\> for %i in (java.exe) do @echo. %~$PATH:i 
C:\WINDOWS\system32\java.exe 
21

Không phải là một lệnh, nhưng thông tin này là trong registry:

  • mở khóa HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
  • Đọc CurrentVersion REG_SZ
  • Mở khóa dưới Java Runtime Environment tên với CurrentVersion giá trị
  • Đọc JavaHome REG_SZ để nhận đường dẫn

Ví dụ trên máy trạm của tôi tôi có

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 
    CurrentVersion = "1.6" 
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5 
    JavaHome = "C:\Program Files\Java\jre1.5.0_20" 
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6 
    JavaHome = "C:\Program Files\Java\jre6" 

Vì vậy JRE hiện tại của tôi là trong C:\Program Files\Java\jre6

6

Sau ngày từ bình luận khác của tôi, đây là một tập tin thực thi mà hiển thị các JRE hiện tại hoặc JDK dựa trên giá trị đăng ký.

Nó khác với các giải pháp khác trong trường hợp java được cài đặt, nhưng không phải trên PATH.

@ECHO off 

SET KIT=JavaSoft\Java Runtime Environment 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=Wow6432Node\JavaSoft\Java Runtime Environment 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=JavaSoft\Java Development Kit 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=Wow6432Node\JavaSoft\Java Development Kit 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

ECHO Failed to find Java 
GOTO :EOF 

:FoundJRE 
call:ReadRegValue JAVAPATH "HKLM\Software\%KIT%\%VER%" "JavaHome" 
ECHO %JAVAPATH% 
GOTO :EOF 

:ReadRegValue 
SET key=%2% 
SET name=%3% 
SET "%~1=" 
SET reg=reg 
IF DEFINED ProgramFiles(x86) (
    IF EXIST %WINDIR%\sysnative\reg.exe SET reg=%WINDIR%\sysnative\reg.exe 
) 
FOR /F "usebackq tokens=3* skip=1" %%A IN (`%reg% QUERY %key% /v %name% 2^>NUL`) DO SET "%~1=%%A %%B" 
GOTO :EOF 
Các vấn đề liên quan