bat里面给classpath和-DXXX_HOME两个参数值都加了双引号就可以了,但是linux下的shell还是不行,不知道该怎么办。
export START_CMD="${_JAVACMD} ${JAVA_OPTS} ${SUNJMX} -classpath "$XXX_CLASSPATH" -DXXX_HOME="$XXX_HOME" test.AppMain"
就是上面这一行,该怎么改?
还是不可以,因为XXX_CLASSPATH中带空格,在启动test.AppMain时,此程序main方法的路径变成两个空格之间。
比如:
XXX_CLASSPATH="AAAA BBBB/lib/test.jar:AAAA BBBB/lib/log4j.jar"
启动的时候就报无法找到 BBBB/lib/test.jar:AAAA 下面的test.AppMain类
你这串写的太长了,我是在看不懂什么意思。
貌似你 给START_CMD赋值,赋值的同时 又给 ${XXX_CLASSPATH}赋值 然后
${XXX_CLASSPATH} 赋的值是${XXX_HOME} test.AppMain 赋过来的。
我劝你,还是把其中涉及的变量单独取出来,别写一块。
整理好以后再调用。
还是不可以,因为XXX_CLASSPATH中带空格,在启动test.AppMain时,此程序main方法的路径变成两个空格之间。
比如:
XXX_CLASSPATH="AAAA BBBB/lib/test.jar:AAAA BBBB/lib/log4j.jar"
启动的时候就报无法找到 BBBB/lib/test.jar:AAAA 下面的test.AppMain类
这看来就比较麻烦了。先执行XXX_HOME=`echo "${XXX_HOME}" | sed -e "s/ /\\ /g"`试试看