以下是我在JAVA中通过SSH登录某台服务器的小试验
不知道为什么会抛出IOException
java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)
Exception in thread "main" java.io.IOException: CreateProcess: \usr\bin\ssh [email protected] ls error=3
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:464)
at CommandTest.execCommand(CommandTest.java:52)
at CommandTest.main(CommandTest.java:17)有没有人可以帮忙解答?
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class CommandTest { public static void main(String[] args) throws Exception {

List<String> param = new ArrayList<String>();
param.add("/usr/bin/ssh");
param.add("[email protected]");
param.add("ls");

execCommand(param);

}

public static void execCommand(List<String> anInpinfolist) throws Exception {
Runtime runtime = null;
Process process = null;
InputStream inputStream = null;
InputStream errorStream = null;
InputStreamReader inputStreamReader = null;
InputStreamReader errorStreamReader = null; BufferedReader bufferedReader = null;
BufferedReader errorReader = null; String outLine = null;
runtime = Runtime.getRuntime();
try {
String[] cmndPram = (String[])anInpinfolist.toArray(
new String[anInpinfolist.size()]);
for (int i = 0; i < cmndPram.length; i++) { if (cmndPram[i] == null) {
cmndPram[i] = "";
}
} /* COMMAND EXEC */
process = runtime.exec(cmndPram); /* COMMAND RESULT */
inputStream = process.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
while ((outLine = bufferedReader.readLine()) != null) {
System.out.println(outLine);
} errorStream = process.getErrorStream();
errorStreamReader = new InputStreamReader(errorStream);
errorReader = new BufferedReader(errorStreamReader);
while ((outLine = errorReader.readLine()) != null) {
System.err.println(outLine);
}

} catch (Exception e) {
e.printStackTrace();
throw e; } finally { try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (Exception ee) {
bufferedReader = null;
} try {
if (errorReader != null) {
errorReader.close();
}
} catch (Exception ee) {
errorReader = null;
}

/* PROCESS CLOSE*/
try {
if (process != null) {
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
process.destroy();
}
} catch (Exception ee) {
process = null;
}
} }


}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ziruobing】截止到2008-07-28 10:36:00的历史汇总数据(不包括此帖):
    发帖的总数量:5                        发帖的总分数:70                       每贴平均分数:14                       
    回帖的总数量:7                        得分贴总数量:2                        回帖的得分率:28%                      
    结贴的总数量:4                        结贴的总分数:50                       
    无满意结贴数:1                        无满意结贴分:50                       
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:80.00 %               结分的百分比:71.43 %                  
    无满意结贴率:25.00 %               无满意结分率:100.00%                  
    楼主加油