windows下java使用JSch向Linux服务器发送java命令,无反应

小红帽XXX 2015-12-16 05:47:19
如题,我现在window的程序上,需要通过访问linux服务器,执行一条Java命令,正常的linux命令没问题了,但是java命令返回结果正常但服务器那边没有结果,代码如下:


public static void main(String[] args){
int returncode =-10;
FtpToSever fts = new FtpToSever();
fts.setIp("172.23.19.127");
fts.setUser("root");
fts.setPassword("`123qwer");
fts.connect();
//fts.upload(sendFiles);
//returncode = fts.execute("ls");
returncode = fts.execute("java -jar /home/eam/TestCommand.jar \n");
System.out.println(">>>>>>>>>>>>>>>"+returncode);
fts.loginOut();
} /**
* 执行shell命令
* */
public int execute(String command) {
int returnCode = 0;
try {
// Create and connect session.

// Create and connect channel.
excechannel = (ChannelExec)sshSession.openChannel("exec");
excechannel.setCommand(command);

// excechannel.setInputStream(null);
BufferedReader input = new BufferedReader(new InputStreamReader(excechannel
.getInputStream()));

excechannel.connect();
System.out.println("The remote command is: " + command);

// Get the output of remote command.
String line;
while ((line = input.readLine()) != null) {
stdout.add(line);
}
input.close();

// Get the return code only after the channel is closed.
if (excechannel.isClosed()) {
returnCode = excechannel.getExitStatus();
}

} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return returnCode;
}

...全文
296 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2015-12-17
  • 打赏
  • 举报
回复
但是java命令返回结果正常但服务器那边没有结果 什么意思?服务器没结果是什么情况,直接在服务器的ssh控制台执行是什么情况?分清楚是java程序执行还是远程调用的问题
小红帽XXX 2015-12-16
  • 打赏
  • 举报
回复
没人吗??求大神解救啊
小红帽XXX 2015-12-16
  • 打赏
  • 举报
回复
自己顶一下,求救啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧