<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
    主站蜘蛛池模板: 亚洲精品无码久久不卡| 亚洲s色大片在线观看| 中文字幕免费观看视频| 蜜芽亚洲av无码精品色午夜| 91九色精品国产免费| 看亚洲a级一级毛片| 亚洲AV永久无码精品成人| 波多野结衣久久高清免费 | 亚洲黄色网址大全| 日韩在线天堂免费观看| 中文字幕无码一区二区免费| 日本亚洲免费无线码| 亚洲午夜精品久久久久久浪潮| 久久久久久精品免费看SSS| 精品亚洲成A人在线观看青青| 日韩亚洲人成在线综合日本| 免费看大美女大黄大色| 国产精品免费观看调教网| 最新亚洲人成无码网站| 337p日本欧洲亚洲大胆艺术| 亚洲AV伊人久久青青草原| 性短视频在线观看免费不卡流畅| 春意影院午夜爽爽爽免费| 亚洲宅男精品一区在线观看| 亚洲欧洲无码AV电影在线观看| 大学生a级毛片免费观看 | 无码国模国产在线观看免费 | 久久精品国产亚洲一区二区三区| 中国在线观看免费高清完整版| 中文字幕免费观看全部电影| 国产精品亚洲AV三区| 亚洲人成高清在线播放| 久久精品国产亚洲夜色AV网站| 亚洲第一成人影院| 成年女人免费v片| 免费视频爱爱太爽了| 男人进去女人爽免费视频国产| 特级毛片全部免费播放a一级| 亚洲中文字幕无码亚洲成A人片| 亚洲精品高清国产一久久| 亚洲色成人中文字幕网站|