我想用程序启动一个可执行文件,su - dap -c /home/dap/dap/bin/start.sh
上面的语句直接拿到ssh终端执行没有任何问题,但是写到程序里面去执行好像执行不到,但是也不报错误。
我的程序如下:
String cmd="su - dap -c /home/dap/dap/bin/start.sh";
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
请各位大侠帮我看看吧!
我把su - dap -c /home/dap/dap/bin/start.sh直接放在SSH终端的时候能执行到start.sh ,结果就是我想要的,但是写在程序中就不行了,这个是怎么回事?
追答那就是语法错误呗 没有执行
追问我把JAVA 代码都贴上来了,您帮我看看哪儿的语法错了?
String cmd="su - dap -c /home/dap/dap/bin/start.sh";
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
嗯 我只会shell不会java语言
追问后台也没报错,工程在服务器上,我没办法调试
我把su - dap -c /home/dap/dap/bin/start.sh直接放在SSH终端java工程所在的用户下能正确执行 ,应该不是权限问题吧
追答那sudo和su有啥区别?