簡體   English   中英

如何在批處理文件中檢測活動的Java版本(32位或64位)

[英]How to detect active java version (32bits oder 64 bits) in a batch file

我必須在批處理文件中包含有關OS體系結構和Java體系結構的測試,以便定義適當的內存參數(-Xmx)。

可以進行OS檢測(我們在SysW64上進行測試:

    IF EXIST %WINDIR%\SysWOW64\
    SET MDM_MEMORY=-Xmx4096m
    ) ELSE (
    SET MDM_MEMORY=-Xmx900m
)

但是現在我想在Java版本(32或64位)上添加進一步的測試。 一些客戶端安裝了Java(在注冊表中),另一些客戶端在磁盤上安裝了Java,程序引用了它。

因此,我想確保:

  1. 我確實找到了活動的Java,而不是注冊表中的活動Java(如果我的程序未使用它的話)
  2. 我想確定體系結構,而不是從Java bin的路徑或其他名稱,因為:

    • 一些客戶在C:\\ SomePath \\ Jre1.7中安裝了Java(沒有提及拱門)

我試圖尋找路徑,也使用java -version,但是我被卡在這里

結果是為Windows 32位,帶有Java 32的Windows 64,最后是Windows64 bist / Java 64位定義一個內存參數-Xmx。

理想情況下,我將添加一條消息,指出“檢測到Java 32 bist,這將導致性能下降,請考慮升級到Java 64位”

PS:您已經注意到我不是開發人員,而是在使用以前的同事。 謝謝你的耐心

您可以嘗試以下操作來確定批處理文件中JVM的ARCH

@echo off
java -d32 -version >NUL 2>&1
if %errorlevel%==0 (echo 32 bit JVM detected, this will lead to poorer performance, please consider upgrading to Java 64 bit JVM) else (echo 64 bit JVM detected)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM