@ECHO OFF CD /D %~dp0 IF NOT EXIST .\bin\tainavi\Viewer.class GOTO ERROREXIT REM JavaRuntimeのバージョンアップ IF EXIST jre6 THEN REN jre6 jre IF EXIST jre ( IF EXIST jre.new ( ECHO JREをバージョンアップします. REN jre jre.old REN jre.new jre ) ) REM バイナリのバージョンアップ IF EXIST bin.new ( ECHO バイナリ[bin]と設定ファイル[env]を更新します. IF EXIST bin.old REN bin.old bin.old2 REN bin bin.old REN bin.new bin ) REM 使用するJavaを検索する SET JPATH=%PATH%;C:\Program Files\Java\jre6\bin;C:\Program Files (x86)\Java\jre6\bin;C:\Program Files\Java\jre7\bin;C:\Program Files (x86)\Java\jre7\bin SET JEXE=javaw.exe SET JAVA= SET CLASSPATH=bin;javamail\mail.jar;javamail\activation.jar;calendar\gdata-calendar-1.0.jar;calendar\gdata-client-1.0.jar;skin\* IF EXIST jre ( SET JAVA=jre\bin\javaw.exe ) ELSE ( FOR %%I IN ( %JEXE% ) DO ( SET JAVA=%%~$JPATH:I ) ) IF NOT EXIST "%JAVA%" ( ECHO. ECHO Javaがみつかりません。以下を確認してください。 ECHO. ECHO @Javaがインストールされているか。 ECHO A%JEXE%がPATH環境変数で指定される場所に存在しているか。 ECHO. PAUSE GOTO :EOF ) ECHO 次のJavaが使用されます:"%JAVA%" REM ヒープの確保可能な最大サイズを調べる CALL :BASENAME "%JAVA%" SET JAVACMD=%RESULT%java.exe SET MAXHEAP=1024m "%JAVACMD%" -Xmx%MAXHEAP% -version > NUL 2> NUL IF NOT ERRORLEVEL 1 ( GOTO :RUNTAI ) SET MAXHEAP=768m "%JAVACMD%" -Xmx%MAXHEAP% -version > NUL 2> NUL IF NOT ERRORLEVEL 1 ( GOTO :RUNTAI ) SET MAXHEAP=512m "%JAVACMD%" -Xmx%MAXHEAP% -version > NUL 2> NUL IF NOT ERRORLEVEL 1 ( GOTO :RUNTAI ) SET MAXHEAP=256m "%JAVACMD%" -Xmx%MAXHEAP% -version > NUL 2> NUL IF ERRORLEVEL 1 ( ECHO 予約可能なヒープサイズが%MAXHEAP%を下回りました. ECHO メモリが不足しているように思われます. PAUSE GOTO :EOF ) REM IF ERRORLEVEL x は、ERRORLEVEL==xではなくてERRORLEVEL>=xなんだそうな。知らんわ!www REM "()"内はローカルスコープになってるみたい。知らんなー… :RUNTAI ECHO ★★★ TaiNavi.exeからの起動に変更をお願いします ★★★ ECHO ★★★ ウィルスチェックを忘れずに!        ★★★ ECHO. ECHO 利用可能な最大ヒープサイズ:%MAXHEAP% ECHO. ECHO タイニー番組ナビゲータを起動中です. ※この窓は10秒で閉じます. START "TaiNavi" "%JAVA%" -Xrs -Xms64m -Xmx%MAXHEAP% -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Tokyo tainavi.Viewer -l %* PING localhost -n 10 > NUL GOTO :EOF REM 引数のパスのみを取得するサブルーチン :BASENAME SET RESULT=%~dp1 GOTO :EOF :ERROREXIT ECHO 実行できません. PAUSE