【发布时间】:2012-07-05 03:07:03
【问题描述】:
我有一个关于 java 中的 Runtime.getRuntime.exec("") 命令的简短问题。
我正在尝试通过 SSH 与网关计算机建立隧道:
String tunnel = "C:\\Program Files\\PuTTY\\putty.exe -ssh -X -P " + localPort + " " + tempUsername + "@" + localIP
+ " -pw " + tempPassword + " -L " + tunnelPort + ":" + gatewayName + ":"+gatewayPort;
Runtime.getRuntime().exec(tunnel);
除了出现命令提示符这一恼人的事实之外,这段代码可以正常工作。
现在我在执行代码后尝试退出提示:
String tunnel = "C:\\Program Files\\PuTTY\\putty.exe -ssh -X -P " + localPort + " " + tempUsername + "@" + localIP
+ " -pw " + tempPassword + " -L " + tunnelPort + ":" + gatewayName + ":"+gatewayPort;
String cmdCommands [] = {tunnel, "exit"};
Runtime.getRuntime().exec(cmdCommands);
是否可以像我一样以类似的方式关闭命令提示符,或者有更好的方法吗? (此代码不起作用)
【问题讨论】:
-
您的代码只是在启动一个可执行文件 (putty.exe)。您看到的命令提示符是 putty。如果要创建 SSH 隧道,则必须使用适当的库,请参阅此线程 *.com/questions/1677248/simple-ssh-tunnel-in-java
-
...顺便说一句,由于 Java 5 的首选方法是使用
ProcessBuilder类 (docs.oracle.com/javase/1.5.0/docs/api/java/lang/…) -
哦,好主意 ^^ 我只是使用了代码,因为我的前任也这样做了,但是额外的库听起来更好
标签: java