我有一个maven项目。 java类调用shell脚本。我曾经使用context.getInitParameter
这样:
String[] cmd = {context.getInitParameter("testabc"), value};
调用shell脚本。在web.xml中,我将路径设置为:
<context-param> <param-name>testabc</param-name> <param-value>/opt/apache-tomcat-8.0.23/webapps/testMonitor/shellScript/Test.sh</param-value> </context-param>
部署并执行后,我收到以下错误:
java.io.IOException: Cannot run program "/bin/bash","Test.sh": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at com.ca.controller.ChefController.saveSchzScript(ChefController.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
文件在那里。当我做vi
它显示文件时,有人可以告诉我我在这里缺少什么吗?
答案 0 :(得分:0)
您打开一个没有环境设置的新shell,即您的路径设置。并且当前路径通常不在搜索路径中。尝试使用完全限定的路径调用shell脚本。还要检查脚本的执行权限。