cd ../../jobs
set CLASSPATH=.;../xyz.jar;../mysql-connector-java-5.1.6-bin.jar
java folser.folder1 ../Files/MySQL.xml
cd ..
我需要從任何目錄運行批處理文件。我已經爲java設置了路徑。有誰能夠幫助我?如何從任何文件夾運行批處理文件
cd ../../jobs
set CLASSPATH=.;../xyz.jar;../mysql-connector-java-5.1.6-bin.jar
java folser.folder1 ../Files/MySQL.xml
cd ..
我需要從任何目錄運行批處理文件。我已經爲java設置了路徑。有誰能夠幫助我?如何從任何文件夾運行批處理文件
你的信息有點亂碼,我假設你說java正在路徑上,但是你無法從批處理文件正常運行你的應用程序。它看起來像缺少java的類路徑選項(-cp)。試試這個:
cd ../../jobs set CLASSPATH=.;../xyz.jar;../mysql-connector-java-5.1.6-bin.jar java -cp %CLASSPATH% folser.folder1 ../Files/MySQL.xml cd ..
使用%CD%來獲取當前目錄(即該批處理文件住在一個)
例如
set JAVA_HOME=%cd%\jdk1.x.x
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%cd%\lib\myjar.jar;etc,etc
%cd%不是批處理文件的目錄,而是當前目錄,例如我在C:\中,我調用C:\ test \ batch.bat; %cd%是C:\,而不是C:\ test。 – vladr 2009-03-03 05:04:04
在* nix中(如Linux)的:
cd "`dirname \"$0\"`"
# your current directoy is now the script's directory
cd ../../jobs
set CLASSPATH=.:../xyz.jar:../mysql-connector-java-5.1.6-bin.jar
java folder.folder1 ../Files/MySQL.xml
cd ..
# when the script terminates, you are automatically
# back to the original directory
在Windows NT/XP /等:
SETLOCAL
PUSHD .
REM current directory has been saved and environment is protected
CD /d %~dp0
REM your current directoy is now the script's directory
CD ..\..\jobs
SET CLASSPATH=.;..\xyz.jar;..\mysql-connector-java-5.1.6-bin.jar
java folder.folder1 ..\Files\MySQL.xml
CD ..
REM before the script terminates, you must explicitly
REM return back to the original directory
POPD
ENDLOCAL
雖然我不能在弗拉德的答案評論(評論需要更多的積分比答案?!)我會永遠警惕的依靠:
CD /d %~dp0
因爲Windows無法將光盤映射到UNC路徑,並且存在將您置於%windir%而非潛在災難性結果的惡劣習慣。
相反,儘管它更加冗長,但每次需要完整路徑時,通常最好引用%〜dp0(或包含該值的變量)。
BAD:
cd /d %~dp0
rd temp
GOOD:
rd %~dp0\temp
這是Windows或Linux?你在cd命令中使用「/」表示Linux,但你談論批處理文件而不是shell腳本。 – paxdiablo 2009-03-03 05:11:21