Java程序shell启动脚本文件中路径带空格怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序shell启动脚本文件中路径带空格怎么办?相关的知识,希望对你有一定的参考价值。
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"`试试看
shell脚本中 cd 到带空格的文件夹的大坑
记录一下今天的大坑,xcode工程里有一个文件叫target support files的目录.没错你没看错,就是带空格的目录.咋之前听网上说是这样写、那样写,无非就是这两种
1.给路径加""
dirPath="YourProject/target support files"
cd $dirPath
2.再加转义\\
dirPath="YourProject/target\\ support\\ files"
cd $dirPath
以上两种方法在mac上都行不通,会报YourProject/target not found,下面才是正确的写法
cd YourProject/target\\ support\\ files
你没看错,就是不要双引号
以上是关于Java程序shell启动脚本文件中路径带空格怎么办?的主要内容,如果未能解决你的问题,请参考以下文章