<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〕路徑,按任意鍵繼續(xù)。

    PAUSE>NUL


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: 先找到j(luò)ava.exe文件,得到主要路徑,然后根據(jù)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內(nèi)含的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內(nèi)含JRE的情況,防止重復(fù)
    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不是用標(biāo)準輸出流,而是用標(biāo)準錯誤輸出流
    ::
    :: 所以如果要輸出到文件,必須用錯誤流,即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命令,防止關(guān)聯(lián)被篡改,直接調(diào)用記事本NOTEPAD.EXE打開。
    ::
    :: 其實后面用不著這個,這里只是為了方便查看。
    ::
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    IF EXIST JRE.txt "%SystemRoot%\NOTEPAD.EXE" JRE.txt


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::
    :: 下一步,就是自動設(shè)置環(huán)境變量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 閱讀(1147) 評論(0)  編輯  收藏 所屬分類: DOS Windows
    主站蜘蛛池模板: 免费一级全黄少妇性色生活片| 亚洲综合激情五月丁香六月| 亚欧乱色国产精品免费视频| 国产片免费福利片永久| 亚洲精品第一国产综合亚AV| 成人黄软件网18免费下载成人黄18免费视频 | 最近免费最新高清中文字幕韩国| 亚洲AV无码精品色午夜在线观看| 最新国产乱人伦偷精品免费网站| 亚洲自偷自偷在线制服| 国产一精品一AV一免费| 亚洲国产精品热久久| 2021在线观看视频精品免费| 自怕偷自怕亚洲精品| 成人免费午夜无码视频 | 亚洲AV成人一区二区三区观看 | 久久久亚洲AV波多野结衣| 69天堂人成无码麻豆免费视频| 亚洲一区二区三区在线网站 | 久久精品成人免费看| 久久精品国产亚洲av日韩| 麻豆最新国产剧情AV原创免费 | 亚洲人成中文字幕在线观看| 精品免费tv久久久久久久| 亚洲综合久久久久久中文字幕| 久久精品女人天堂AV免费观看| 亚洲日韩在线中文字幕综合| 不卡精品国产_亚洲人成在线| 久久午夜夜伦鲁鲁片免费无码 | 亚洲一区二区三区无码国产| 国产免费小视频在线观看| 成人无码视频97免费| 亚洲国产av高清无码| 亚洲精品国产日韩无码AV永久免费网| 久久国产免费直播| 国产精品亚洲综合五月天| 全部免费a级毛片| 最近中文字幕免费完整| 美女被爆羞羞网站在免费观看| 九月丁香婷婷亚洲综合色| 精品熟女少妇AV免费观看|