【发布时间】:2012-02-29 05:29:50
【问题描述】:
我在 java 中有一个程序,它将第 0 个参数作为文件位置,例如
File f = new File(args[0]);
所以当我使用 Windows 批处理(.bat)文件执行它时,它可以正常工作。 但是当我在 linux 中使用 linux shell 文件(.sh)执行相同操作时,我得到 ArrayIndexOutOfBoundsException。
WINDOWS 批处理文件:
@echo off
for /f %%i in ("%0") do set scriptpath=%%~dpi
set cp=%scriptpath%/../lib/*.jar;
java -classpath %cp% com.synchronizer.main.MYSynchronizer %scriptpath% "%1" "%2"
LINUX SH 文件:
export JAVA_HOME=/usr/local/java
PATH=/usr/local/java/bin:${PATH}
THE_CLASSPATH=
for i in `ls ../lib/*.jar`
do
THE_CLASSPATH=${THE_CLASSPATH}:${i}
done
java -cp ".:${THE_CLASSPATH}" \
com.synchronizer.main.MYSynchronizer
请帮忙!
【问题讨论】:
-
您似乎没有在这里传递任何参数...
-
发布在 Win 和 Linux 中的使用示例。