[英]Execute a shell script (shell script which uses perl and other shell scripts) in Linux from java
我正在尝试从Java程序执行shell脚本(利用perl脚本和其他shell脚本),但是我没有成功,这是我尝试的方法:
在Linux服务器上,在文件夹test1 / testJava中,可以使用以下脚本:
这是我尝试从Java:
try {
ConnBean cb = new ConnBean("xx.yyy.zz.p", "user","passme");
ssh = SSHExec.getInstance(cb);
CustomTask ct1 = new ExecShellScript("/test1/testJava", "./decode24.sh", "arg1");
ssh.connect();
net.neoremind.sshxcute.core.Result res = ssh.exec(ct1);
}catch......
执行后的结果:
错误信息:
./decode.sh[17]: shadow.pl: not found [No such file or directory]
./decode.sh[21]: fram.sh: not found [No such file or directory]
该错误来自您的decode.sh
脚本。 它找不到执行的shadow.pl
和fram.sh
脚本。 可能是因为在运行脚本时CWD或路径未设置为脚本目录。
解决此问题的最可靠方法是更改您的decode.sh
脚本,以使用shadow.pl
和fram.sh
脚本的绝对路径。 这样,您可以从任何目录执行decode.sh
。
如果您使用bash,请查看此问题以找到一种巧妙的方法来将绝对目录解析为脚本,从而避免对路径进行硬编码。
让解码.sh找出它所在的目录(请参阅bash解决方案 )并使用该路径调用其他目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.