gpt4 book ai didi

java - 通过ssh在远程系统上执行java代码

转载 作者:行者123 更新时间:2023-11-29 08:47:53 28 4
gpt4 key购买 nike

我想在我的本地 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。

有解决办法吗?

最佳答案

你想要做的基本上不仅需要你的对象在远程系统上被序列化、传输和反序列化,而且还需要一个 Java VM 存在并在主机上启动,并且在它的类中有你传输的实例的类小路。我怀疑您会为此找到现成的解决方案。不过,您可以使用 RMI 之类的东西与远程主机上正在运行的 JVM 进行通信。

关于java - 通过ssh在远程系统上执行java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24201717/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com