在Windows 7注册表中查找Java CurrentVersion

迈克尔·索布恰克

我支持一个旧的Java客户端应用程序,该应用程序可以在Windows XP上正常运行,但不能在Windows 7 32位上运行。问题出在用于启动应用程序的BAT文件中。BAT文件包含的代码可在注册表中查询Java的CurrentVersion,然后使用该值来确定该Java版本在用户计算机上的路径。这是为了在启动Java客户端应用程序时将rt.jar包含在CLASSPATH中。以下代码在Windows XP上运行良好,但在Windows 7上返回:

找不到“ HKLM \ SOFTWARE \ JavaSoft \ Java运行时环境” \ CurrentVersion。

:find_java
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set VALUE_NAME=CurrentVersion

::
:: get the current version
::
FOR /F "usebackq skip=4 tokens=3" %%A IN (`REG QUERY "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /v CurrentVersion 2^>nul`) DO (
    set ValueValue=%%A
)

if defined ValueValue (

    @echo the current Java runtime is  %ValueValue%
) else (
    @echo %KEY_NAME%\%VALUE_NAME% not found.
    goto return
)

set JAVA_CURRENT="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\%ValueValue%"
set JAVA_HOME=JavaHome

::
:: get the javahome
::
FOR /F "usebackq skip=4 tokens=3,4" %%A IN (`REG QUERY %JAVA_CURRENT% /v %JAVA_HOME% 2^>nul`) DO (
    set JAVA_PATH=%%A %%B
)
set JAVA_PATH=%JAVA_PATH:Program Files=Progra~1%
echo using %JAVA_PATH%
set JAVA_HOME=%JAVA_PATH%
echo.
:return
goto start

对于复杂的DOS命令编程,我并不精明。关于如何更新此代码以使其在Windows 7(32位)下工作的任何线索?

MC ND

也许这可以帮助

@echo off 
    setlocal enableextensions disabledelayedexpansion

    :: possible locations under HKLM\SOFTWARE of JavaSoft registry data
    set "javaNativeVersion="
    set "java32ON64=Wow6432Node\"

    :: for variables
    ::    %%k = HKLM\SOFTWARE subkeys where to search for JavaSoft key
    ::    %%j = full path of "Java Runtime Environment" key under %%k
    ::    %%v = current java version
    ::    %%e = path to java

    set "javaDir="
    set "javaVersion="
    for %%k in ( "%javaNativeVersion%" "%java32ON64%") do if not defined javaDir (
        for %%j in (
            "HKLM\SOFTWARE\%%~kJavaSoft\Java Runtime Environment"
        ) do for /f "tokens=3" %%v in (
            'reg query "%%~j" /v "CurrentVersion" 2^>nul ^| find /i "CurrentVersion"'
        ) do for /f "tokens=2,*" %%d in (
            'reg query "%%~j\%%v" /v "JavaHome"   2^>nul ^| find /i "JavaHome"'
        ) do ( set "javaDir=%%~e" & set "javaVersion=%%v" )
    )

    if not defined javaDir (
        echo Java not found
    ) else (
        echo JAVA_HOME="%javaDir%"
        echo JAVA_VERSION="%javaVersion%"
    )

    endlocal

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法通过命令行删除HKLM \ Microsoft \ Windows \ CurrentVersion \ Run中的注册表项

来自分类Dev

HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \。<扩展名> \ UserChoice中的哈希是什么?

来自分类Dev

在Windows 7注册表中禁用超线程

来自分类Dev

如何在Windows 7中编辑注册表

来自分类Dev

Windows 7注册表设置文档

来自分类Dev

从Perl中的Windows注册表读取

来自分类Dev

Windows注册表中的神秘@字符

来自分类Dev

删除程序后,更正Windows 7中注册表中的文件关联

来自分类Dev

在Windows 7中使用注册表设置“从不合并”?

来自分类Dev

在Windows 7中某些程序将不会“禁用视觉主题”注册表设置?

来自分类Dev

Windows 7产品密钥,有效的密钥-在注册表中还是在贴纸上?

来自分类Dev

使用批处理或注册表从Windows 7收藏夹中删除“最近的位置”?

来自分类Dev

Windows 7 x64下注册表中的产品卸载密钥在哪里?

来自分类Dev

通过Windows注册表更改Windows中的声音方案

来自分类Dev

Windows 7 DVD启动-未保存注册表更改

来自分类Dev

Windows注册表问题

来自分类Dev

Windows用户的到期日期或注册表在注册表中的何处?

来自分类Dev

HKCU \ software \ microsoft \ windows \ currentversion \ explorer \ fileexts的作用是什么?

来自分类Dev

如何使用Java导出Windows注册表文件

来自分类Dev

从虚拟的Windows注册表中读取密钥

来自分类Dev

从注册表中检索Windows密码提示

来自分类Dev

Windows 8 Pro版本信息在注册表中?

来自分类Dev

Windows注册表编辑器中的编码错误

来自分类Dev

Windows注册表中的APIPA(本地链接)IP地址

来自分类Dev

从注册表中检索Windows密码提示

来自分类Dev

Windows中的注册表文件存储在哪里?

来自分类Dev

Windows 10中启动的默认注册表值

来自分类Dev

注册表中Windows服务机密是否安全?

来自分类Dev

Windows 注册表或 IE 中的可信脚本设置

Related 相关文章

  1. 1

    无法通过命令行删除HKLM \ Microsoft \ Windows \ CurrentVersion \ Run中的注册表项

  2. 2

    HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \。<扩展名> \ UserChoice中的哈希是什么?

  3. 3

    在Windows 7注册表中禁用超线程

  4. 4

    如何在Windows 7中编辑注册表

  5. 5

    Windows 7注册表设置文档

  6. 6

    从Perl中的Windows注册表读取

  7. 7

    Windows注册表中的神秘@字符

  8. 8

    删除程序后,更正Windows 7中注册表中的文件关联

  9. 9

    在Windows 7中使用注册表设置“从不合并”?

  10. 10

    在Windows 7中某些程序将不会“禁用视觉主题”注册表设置?

  11. 11

    Windows 7产品密钥,有效的密钥-在注册表中还是在贴纸上?

  12. 12

    使用批处理或注册表从Windows 7收藏夹中删除“最近的位置”?

  13. 13

    Windows 7 x64下注册表中的产品卸载密钥在哪里?

  14. 14

    通过Windows注册表更改Windows中的声音方案

  15. 15

    Windows 7 DVD启动-未保存注册表更改

  16. 16

    Windows注册表问题

  17. 17

    Windows用户的到期日期或注册表在注册表中的何处?

  18. 18

    HKCU \ software \ microsoft \ windows \ currentversion \ explorer \ fileexts的作用是什么?

  19. 19

    如何使用Java导出Windows注册表文件

  20. 20

    从虚拟的Windows注册表中读取密钥

  21. 21

    从注册表中检索Windows密码提示

  22. 22

    Windows 8 Pro版本信息在注册表中?

  23. 23

    Windows注册表编辑器中的编码错误

  24. 24

    Windows注册表中的APIPA(本地链接)IP地址

  25. 25

    从注册表中检索Windows密码提示

  26. 26

    Windows中的注册表文件存储在哪里?

  27. 27

    Windows 10中启动的默认注册表值

  28. 28

    注册表中Windows服务机密是否安全?

  29. 29

    Windows 注册表或 IE 中的可信脚本设置

热门标签

归档