Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ant sshexec任务在远程计算机上运行命令_Java_Ant_Ssh - Fatal编程技术网

Java 使用ant sshexec任务在远程计算机上运行命令

Java 使用ant sshexec任务在远程计算机上运行命令,java,ant,ssh,Java,Ant,Ssh,我是这个主题的新手,ApacheAnt,我想使用Ant sshexec任务在远程计算机上运行一个命令。这是我本科毕业论文的一部分。我必须尽快解决这个问题。有这样一个目标: <target id="9" name="connectrun"> <sshexec host="192.168.1.34" username="remoteusername" password="remotepassword" trust="true" verbose="true"

我是这个主题的新手,ApacheAnt,我想使用Ant sshexec任务在远程计算机上运行一个命令。这是我本科毕业论文的一部分。我必须尽快解决这个问题。有这样一个目标:

<target id="9" name="connectrun">
<sshexec host="192.168.1.34"
   username="remoteusername"
   password="remotepassword"
   trust="true" 
   verbose="true"
   command="cmd /c dir C:\">
   </sshexec>
</target>

我使用ant版本1.8.2和jsch-0.1.48.jar。OSs是每台计算机的Windows7。我在运行目标时关闭了windows防火墙,我接受以下错误:

com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused: connect
at com.jcraft.jsch.Util.createSocket(Util.java:341)
at com.jcraft.jsch.Session.connect(Session.java:182)
at com.jcraft.jsch.Session.connect(Session.java:150)
at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:223)
at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:190)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at com.jcraft.jsch.Util.createSocket(Util.java:335)
com.jcraft.jsch.JSchException:java.net.ConnectException:拒绝连接:连接
位于com.jcraft.jsch.Util.createSocket(Util.java:341)
位于com.jcraft.jsch.Session.connect(Session.java:182)
位于com.jcraft.jsch.Session.connect(Session.java:150)
位于org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:223)
位于org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:190)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:291)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:390)
位于org.apache.tools.ant.Target.performTasks(Target.java:411)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
位于org.apache.tools.ant.Project.executeTarget(Project.java:1368)
位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1251)
位于org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
位于org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
位于org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
原因:java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
位于java.net.socksocketimpl.connect(socksocketimpl.java:391)
位于java.net.Socket.connect(Socket.java:579)
位于java.net.Socket.connect(Socket.java:528)
位于java.net.Socket。(Socket.java:425)
位于java.net.Socket(Socket.java:208)
位于com.jcraft.jsch.Util.createSocket(Util.java:335)

仔细查看Java堆栈跟踪:

Caused by: java.net.ConnectException: Connection refused: connect
这是一个通用的Java网络错误,在无法建立连接时抛出。典型的根本原因是远程端没有进程侦听


问一个相当明显的问题。。。。您是否在远程windows机箱上安装了SSH服务器?它正在监听端口22吗?

您尝试连接的机器上是否有ssh服务器运行?尝试使用putty或其他ssh客户端建立ssh连接,并使其正常工作。我已经在远程windows服务器上安装了freeSSHd服务器。我已经将SSH侦听端口设置为22,这个端口是默认端口,当然您可以更改。对于其他想在这个主题上提供帮助的人:不要忘记,我们将使用SSH服务器创建的用户名和密码。注意不要使用windows用户名。谢谢