<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 41,  comments - 40,  trackbacks - 0

    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: Author: NeedJava
    ::
    :: Modified: 2007-07-07
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    @ECHO OFF


    SETLOCAL EnableDelayedExpansion

    ECHO 搜索可用的〔JRE〕路徑,按任意鍵繼續。

    PAUSE>NUL


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: 先找到java.exe文件,得到主要路徑,然后根據java.exe附近一些有特點的文件,
    ::
    :: 來判斷是否是有效的路徑。
    ::
    :: 沒辦法識別人為制造的惡意路徑,除非每個文件都用MD5辨認。
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    DEL /F /Q JRE.txt 2>NUL

    FOR %%a IN ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) DO (

    ??? IF EXIST "%%a:\" (

    ?????? ECHO 正在〔%%a:〕盤下搜索……

    ?????? FOR /F "delims=" %%b IN ( 'DIR /A-D /B /S "%%a:\java.exe" 2^>NUL' ) DO (

    ?????????? SET "JRELocation=%%~dpb"

    REM??????? ECHO [%%~fb] & ECHO [!JRELocation!] & PAUSE

    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    REM??????? ::
    REM??????? :: 去除末尾的“\bin\”
    REM??????? ::
    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    REM??????? IF /I "!JRELocation:~5!"=="\bin\" (
    REM
    REM?????????? SET "JRELocation=!JRELocation:~0,5!"
    REM
    REM?????????? ECHO [!JRELocation!] & PAUSE
    REM
    REM??????? )

    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    REM??????? ::
    REM??????? :: 這是JDK內含的JRE
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jdk1.5.0_12\bin\java.exe
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jdk1.5.0_12\jre\bin\java.dll
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jdk1.5.0_12\jre\bin\client\jvm.dll
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jdk1.5.0_12\jre\lib\rt.jar
    REM??????? ::
    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ?????????? IF EXIST "!JRELocation!\..\jre\bin\java.dll" (

    ????????????? IF EXIST "!JRELocation!\..\jre\bin\client\jvm.dll" (

    ???????????????? IF EXIST "!JRELocation!\..\jre\lib\rt.jar" (

    ??????????????????? CALL :version !JRELocation!

    ???????????????? )

    ????????????? )

    ?????????? )

    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    REM??????? ::
    REM??????? :: 這是單獨的JRE,必須剔除JDK內含JRE的情況,防止重復
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jre1.5.0_12\bin\java.exe
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jre1.5.0_12\bin\java.dll
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jre1.5.0_12\bin\client\jvm.dll
    REM??????? ::
    REM??????? :: C:\Program Files\Java\jre1.5.0_12\lib\rt.jar
    REM??????? ::
    REM??????? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ?????????? IF EXIST "!JRELocation!\java.dll" (

    ????????????? IF EXIST "!JRELocation!\client\jvm.dll" (

    ???????????????? IF EXIST "!JRELocation!\..\lib\rt.jar" (

    ??????????????????? IF NOT EXIST "!JRELocation!\..\..\bin\java.exe" (

    ?????????????????????? CALL :version !JRELocation!

    ??????????????????? )

    ???????????????? )

    ????????????? )

    ?????????? )

    ?????? )

    ??? )

    )

    GOTO :show


    :version
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: JAVA.EXE -version不是用標準輸出流,而是用標準錯誤輸出流
    ::
    :: 所以如果要輸出到文件,必須用錯誤流,即2>。輸出類似如下:
    ::
    :: java version "1.5.0_12"
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ECHO Found JRE: [%*]

    IF NOT "!JRELocation!"=="" IF "!JRELocation!"=="%*" (

    ?? "!JRELocation!\JAVA.EXE" -version 2>versionErr.txt 1>versionOut.txt

    ?? FOR /F "tokens=1,2,3,4* delims= " %%a IN ( versionErr.txt versionOut.txt ) DO (

    ?????? IF /I "%%a"=="java" IF /I "%%b"=="version" (

    ????????? SET "JREVersion=%%~c"

    ????????? ECHO JRE Version: [!JREVersion!] & ECHO.

    ????????? ECHO !JREVersion!^?!JRELocation!>>JRE.txt

    ?????? )

    ?? )

    ?? DEL /F /Q versionErr.txt 2>NUL

    ?? DEL /F /Q versionOut.txt 2>NUL

    )

    GOTO :EOF


    :show
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: 不建議用START.EXE命令,防止關聯被篡改,直接調用記事本NOTEPAD.EXE打開。
    ::
    :: 其實后面用不著這個,這里只是為了方便查看。
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    IF EXIST JRE.txt "%SystemRoot%\NOTEPAD.EXE" JRE.txt


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: 下一步,就是自動設置環境變量path,使用INF文件改注冊表,如下:
    ::
    :: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path:
    ::
    :: "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;"
    ::
    :: 可以讀出找到的JRE,讓使用者自己選擇用哪個JRE,用到的命令FOR、SET /P,以后再寫……
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


    @ECHO ON

    ?

    ?
    posted on 2007-07-05 16:28 NeedJava 閱讀(1146) 評論(0)  編輯  收藏 所屬分類: DOS Windows
    主站蜘蛛池模板: 免费无码又爽又刺激高潮| 最近免费中文字幕4| 亚洲成av人片天堂网| fc2成年免费共享视频网站| 亚洲A∨午夜成人片精品网站| 久久精品国产亚洲AV| 四虎永久免费网站免费观看| 国产精品久久亚洲一区二区| 国产国产人免费人成免费视频 | 五月婷婷在线免费观看| 亚洲国产成人在线视频| 四虎成年永久免费网站| 亚洲午夜精品一区二区麻豆| 午夜一级毛片免费视频| 免费无码AV一区二区| 国产成人A亚洲精V品无码| a级毛片毛片免费观看久潮喷 | 国产成人综合亚洲AV第一页| 91视频免费网站| 久久精品国产亚洲精品2020| 久久精品免费一区二区喷潮| 国产精品亚洲专区无码牛牛| 亚洲精品国产高清不卡在线| 国内精品免费在线观看| 亚洲剧情在线观看| 日本免费v片一二三区| 大妹子影视剧在线观看全集免费| 亚洲尹人香蕉网在线视颅| 成年免费大片黄在线观看岛国 | 国产精品视频白浆免费视频| 亚洲国产视频网站| 亚洲国产一级在线观看| 97青青草原国产免费观看| 亚洲日韩精品无码AV海量| 亚洲一区二区三区偷拍女厕| 免费精品国产自产拍在| 一级毛片免费毛片毛片| 亚洲精品国产精品国自产网站 | 日韩亚洲翔田千里在线| 亚洲Av无码专区国产乱码DVD| 国内免费高清在线观看|