我正在尝试使用ssh api Jsch从我的java应用程序(在我的windows7工作站上)执行unix服务器中的脚本shell。
我使用的脚本外壳"start_lm“是一个C二进制文件。
这是我正在使用的代码(来自Jsch网站的例子)
try{
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, 22);
UserInfo ui=new MyUserInfo();
session.setUserInfo(ui);
session.connect();
String command="user/psi/start_lm";
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
while(true){
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
channel.disconnect();
session.disconnect();
}我得到的错误是
exit-status:-1它是什么意思
谢谢你的帮助。
发布于 2011-07-09 01:09:14
这就是我认为的问题
". ./start_lm.sh它应该在当前目录中提供的脚本下面
"./start_lm.sh正如退出状态127所说的那样
127 "command not found" illegal_command 发布于 2014-08-17 18:55:55
String command="/bin/sh /user/psi/start_lm.sh";
请尝试上面的方法,因为jsch可能使用非交互式shell。
https://stackoverflow.com/questions/6627766
复制相似问题