【发布时间】:2014-06-14 00:32:57
【问题描述】:
我想在我的本地 PC 上运行一个 java 程序,它使用 ssh 连接到远程 PC 并在那里执行一些方法(java 代码,而不是 bash 脚本!)。例如,我发现JSch 可以通过 ssh 连接和远程执行代码,例如
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword(passwd);
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
(来自http://www.jcraft.com/jsch/examples/Shell.java.html)
或ssxcute,可与
ConnBean cb = new ConnBean("ip ", "username","password");
ssh = SSHExec.getInstance(cb);
ssh.connect();
CustomTask sampleTask = new ExecCommand("echo 123");
ssh.exec(sampleTask);
(来自https://code.google.com/p/sshxcute/)
但我想做的是类似
...
ssh.connect();
MyExecuteClass execClass = new MyExecuteClass();
ssh.exec(execClass.runLongJob(a, b, c));
MyReturn return = ssh.getReturnValue();
这可能吗?对象a,b,c 必须传输到远程系统,以及所有全局变量、其他类、导入……并且方法的返回值必须以某种方式返回……如果其他对象在runLongjob 方法也必须将这些更改发送回本地 PC。
有解决办法吗?
【问题讨论】: