求一个Windows环境下bat启动脚本的写法

OctopusThu 2009-11-30 10:17:48
目录结构:
startup.bat
/classes
/lib

求startup.bat的写法,类似于:
java -classpath "./classes;./lib/aaa.jar;./lib/bbb.jar;..." com.abc.ABC

因为/lib下有很多jar文件,所以求一种方法,不需要一个一个的列出文件名,而是直接把所有jar文件包含到classpath里。
...全文
1576 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OctopusThu 2009-11-30
  • 打赏
  • 举报
回复
我其实就是想循环加入/lib文件夹下的所有jar文件。你给的这个例子好像没有循环的部分啊。
一头头 2009-11-30
  • 打赏
  • 举报
回复
一个启动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%\bin

set JUDE_JAR=argouml.jar
set INITIAL_HEAP_SIZE=16m
set MAXIMUM_HEAP_SIZE=384m
set STACK_SIZE=2m

set USER_LANGUAGE=en
rem set USER_LANGUAGE=ja
rem set USER_LANGUAGE=en

set 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 hasJudeHome

if "%OS%"=="Windows_NT" goto setJudeHomeNT

rem *** Windows98 user have to edit here ****
rem set JUDE_HOME=D:\\software\\java\uml\\ArgoUML-0.24

if "%JUDE_HOME%"=="" goto noJudeHome
if not exist "%JUDE_HOME%\%JUDE_JAR%" goto badJudeHome
goto hasJudeHome

rem for Windows2000, XP, NT
:setJudeHomeNT
set JUDE_HOME=%~dp0

:hasJudeHome

rem 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
shine333 2009-11-30
  • 打赏
  • 举报
回复
没看到,楼主已经解决了
shine333 2009-11-30
  • 打赏
  • 举报
回复
@ECHO OFF
SET HOME=.
SET CLASSPATH=%HOME%\classes
FOR /R %HOME%\lib %%I IN (*.jar) DO SET CLASSPATH=!CLASSPATH!;%%~fI

ECHO %CLASSPATH%

pause
OctopusThu 2009-11-30
  • 打赏
  • 举报
回复
自己解决了:

@echo off

setlocal enabledelayedexpansion
set classpath=.;./classes
for %%f in (./lib/*.jar) do (
set onefile=%%f
set classpath=!classpath!;./lib/!onefile!
)

@echo on

echo %classpath%

java -classpath "%classpath%" com.abc.ABC
pause

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧