目录结构:
    startup.bat
    /classes
    /lib求startup.bat的写法,类似于:
    java -classpath "./classes;./lib/aaa.jar;./lib/bbb.jar;..." com.abc.ABC因为/lib下有很多jar文件,所以求一种方法,不需要一个一个的列出文件名,而是直接把所有jar文件包含到classpath里。

解决方案 »

  1.   

    一个启动java程序的bat脚本<转>
    2009-04-15 14:05@echo off
    rem Batch file to run JUDE on Windows
    rem Remove "rem" from following two lines, if you'd like to use j2sdk.
    rem set JAVA_HOME=C:\j2sdk1.4.2_09
    rem set PATH=%JAVA_HOME%\binset JUDE_JAR=argouml.jar 
    set INITIAL_HEAP_SIZE=16m
    set MAXIMUM_HEAP_SIZE=384m
    set STACK_SIZE=2mset USER_LANGUAGE=en
    rem set USER_LANGUAGE=ja
    rem set USER_LANGUAGE=enset USER_COUNTRY=US
    rem set USER_COUNTRY=JP
    rem set USER_COUNTRY=US
    rem JUDE_HOME should be this folder
    if not "%JUDE_HOME%"=="" goto hasJudeHomeif "%OS%"=="Windows_NT" goto setJudeHomeNTrem *** Windows98 user have to edit here ****
    rem set JUDE_HOME=D:\\software\\java\uml\\ArgoUML-0.24if "%JUDE_HOME%"=="" goto noJudeHome
    if not exist "%JUDE_HOME%\%JUDE_JAR%" goto badJudeHome
    goto hasJudeHomerem for Windows2000, XP, NT
    :setJudeHomeNT
    set JUDE_HOME=%~dp0:hasJudeHomerem set CLASSPATH=%JUDE_HOME%\%JUDE_JAR%
    set JAVA_OPTS=-Xms%INITIAL_HEAP_SIZE% -Xmx%MAXIMUM_HEAP_SIZE% -Xss%STACK_SIZE%
    if not "%USER_LANGUAGE%"=="" set JAVA_OPTS=%JAVA_OPTS% -Duser.language=%USER_LANGUAGE%
    if not "%USER_COUNTRY%"=="" set JAVA_OPTS=%JAVA_OPTS% -Duser.country=%USER_COUNTRY%if exist "%JUDE_HOME%\jre\bin\javaw.exe" set PATH="%JUDE_HOME%\jre\bin"rem run Jude
    start javaw %JAVA_OPTS% -jar D:\\software\\java\uml\\ArgoUML-0.24\\argouml.jar %1 %2 %3
    IF ERRORLEVEL 2 goto noJavaw
    goto end:noJudeHome
    echo.
    echo JUDE_HOME is not set. Please set JUDE_HOME environment variable
    echo or edit jude.bat to set JUDE_HOME.
    echo. 
    pause
    goto end:badJudeHome
    echo.
    echo JUDE_HOME is invalid. Please check your JUDE_HOME.
    echo. 
    pause
    goto end:noJavaw
    echo.
    echo Failed to run java.
    echo Java runtime environment is required to run JUDE.
    echo Please read README.txt in %JUDE_HOME%
    echo and setup Java environment at first.
    echo.
    echo JUDE tries to run javaw. It should be in PATH system environment variable.
    echo.
    echo If you would like to run java in your specified folder, you can edit jude.bat
    echo in %JUDE_HOME%
    echo like followings and set your JAVA_HOME.
    echo     before:
    echo       rem set JAVA_HOME=C:\j2sdk1.4.2_08
    echo       rem set PATH=%JAVA_HOME%\bin
    echo     after:
    echo       set JAVA_HOME=C:\j2sdk1.4.2_08
    echo       set PATH=%JAVA_HOME%\bin
    echo.
    echo.
    pause
    goto end:end
     
    不过bat毕竟不能加到windows services里面去  推荐还是用wrapper
      

  2.   

    我其实就是想循环加入/lib文件夹下的所有jar文件。你给的这个例子好像没有循环的部分啊。
      

  3.   

    自己解决了:@echo offsetlocal enabledelayedexpansion
    set classpath=.;./classes
    for %%f in (./lib/*.jar) do (
    set onefile=%%f
    set classpath=!classpath!;./lib/!onefile!
    )@echo onecho %classpath%java  -classpath "%classpath%" com.abc.ABC
    pause
      

  4.   

    @ECHO OFF
    SET HOME=.
    SET CLASSPATH=%HOME%\classes
    FOR /R %HOME%\lib %%I IN (*.jar) DO SET CLASSPATH=!CLASSPATH!;%%~fIECHO %CLASSPATH%pause